这门课解决什么工作场景

很多初学 Java 的开发者卡在“听得懂语法,写不出代码”的阶段。能跑通 Hello World,但面对集合排序、文件读写、多线程并发时,往往只会照搬网络上的模板,一旦场景稍有变化就无从下手。本课程聚焦于 JavaSE 的进阶特性,核心解决的是从“语法知道”到“工程应用”的断层问题。

课程不讲空洞的理论定义,而是深入分析 IO 流、集合框架、泛型、多线程等高频考点与实际开发痛点。对于准备面试或需要独立承担基础模块开发的转行者来说,这些内容是构建扎实后端基石的关键。它帮你梳理清楚 Java 语言本身最核心的机制,让你在后续的 Spring 框架学习中不再因为基础概念模糊而反复回看。

适合什么基础与学习路径

本课程适合已经掌握 Java 基础语法(变量、循环、类对象)的学员。如果你能熟练编写简单的控制台程序,但觉得对内部原理理解不深,或者在学习过程中总是依赖他人代码而不清楚为何这样写,那么这里的进阶内容正是你需要补全的拼图。

建议的学习顺序如下:首先集中攻克集合框架与泛型部分,这是日常业务逻辑编写中使用频率最高的工具;其次是 IO 流与文件处理,这是理解数据持久化与交互的基础;最后进入多线程与并发编程,这部分难度较高,是区分初级与中级开发者的分水岭,务必配合动手调试才能掌握。切勿跳过练习直接看理论,JavaSE 是一门实践性极强的语言。

学完能独立做什么

完成本阶段学习后,你将具备独立开发非图形界面后台程序的能力。具体而言,你可以熟练处理内存中的数据存取(集合操作),实现本地文件的读写与解析,并能编写简单的多线程程序来处理耗时任务而不阻塞主流程。

在面试场景中,你能够清晰阐述 HashMap 的底层结构、线程安全的实现方式以及 IO 流的选择逻辑,而不是仅停留在表面记忆。此外,扎实的 JavaSE 功底能让你在后续接触大数据处理或高并发后端架构时,更快理解性能瓶颈所在。建议利用课程中的案例代码,亲手修改参数、观察异常输出,将知识点转化为肌肉记忆,而非仅仅停留在视频观看层面。

课程目录

├── 01_面向对象项目-比萨点餐消费系统/ │ ├── [3.5M] 01_项目需求讲解.mp4
 │ ├── [ 22M] 02_项目结构分析.mp4
 │ ├── [ 41M] 03_父类子类创建.mp4
 │ ├── [102M] 04_测试类逻辑.mp4
 │ └── [ 65M] 05_工厂类的提取.mp4
 ├── 02_异常(一)/ │ ├── [ 42M] 01_异常的案例引入.mp4
 │ ├── [ 71M] 02_处理异常方式:if-else.mp4
 │ ├── [ 52M] 03_处理异常方式:try-catch捕获.mp4
 │ ├── [ 27M] 04_catch中处理异常的几种方式.mp4
 │ ├── [ 82M] 05_finally讲解.mp4
 │ └── [ 46M] 06_多重catch.mp4
 ├── 03_异常(二)/ │ ├── [108M] 01_异常的分类层次结构.mp4
 │ ├── [ 20M] 02_throw和throws的区别.mp4
 │ ├── [ 19M] 03_异常练习.mp4
 │ ├── [9.4M] 04_重载和重写异常的区别.mp4
 │ └── [ 14M] 05_自定义异常.mp4
 ├── 04_常用类(一)/ │ ├── [ 15M] 01_包装类_引入.mp4
 │ ├── [ 31M] 02_包装类_常用属性_常用构造器.mp4
 │ ├── [ 11M] 03_包装类_自动装箱_自动拆箱.mp4
 │ ├── [ 51M] 04_包装类_常用方法.mp4
 │ ├── [156M] 05_日期相关_java.util.Date.mp4
 │ ├── [ 17M] 06_日期相关_java.sql.Date.mp4
 │ └── [ 28M] 07_日期相关_SimpleDateFormat.mp4
 ├── 05_常用类(二)/ │ ├── [103M] 01_日期相关_Calendar.mp4
 │ ├── [5.8M] 02_日期相关_Calendar练习需求.mp4
 │ ├── [122M] 03_日期相关_Calendar练习完成.mp4
 │ ├── [ 28M] 04_日期相关_JDK1.8新增日期时间API的原因.mp4
 │ ├── [ 24M] 05_日期相关_JDK1.8新增LocalDateTime.mp4
 │ └── [ 24M] 06_日期相关_JDK1.8新增DateTimeFormatter.mp4
 ├── 06_常用类(三)/ │ ├── [ 23M] 01_Math类.mp4
 │ ├── [ 25M] 02_Random类.mp4
 │ ├── [ 16M] 03_String的底层本质.mp4
 │ ├── [ 24M] 04_String的常用方法(1).mp4
 │ ├── [ 21M] 05_String的常用方法(2).mp4
 │ ├── [ 19M] 06_String的常用方法(3).mp4
 │ ├── [ 27M] 07_String的常用方法(4).mp4
 │ └── [ 34M] 08_String的内存分析.mp4
 ├── 07_常用类(四)/ │ ├── [ 38M] 01_StringBuilder类(1).mp4
 │ ├── [ 32M] 02_StringBuilder类(2).mp4
 │ ├── [9.7M] 03_理解可变和不可变的含义.mp4
 │ ├── [ 12M] 04_StringBuilder常用方法.mp4
 │ └── [7.7M] 05_String,StringBuilder,StringBuffer区别.mp4
 ├── 08_JUnit&枚举/ │ ├── [8.2M] 01_JUnit_Junit单元测试引入.mp4
 │ ├── [ 46M] 02_JUnit_没有Junit的情况下如何测试.mp4
 │ ├── [ 16M] 03_JUnit_Junit的使用.mp4
 │ ├── [ 56M] 04_JUnit_@Before_@After.mp4
 │ ├── [ 15M] 05_枚举_引入_自定义枚举类.mp4
 │ ├── [ 21M] 06_枚举_JDK1.5后使用enum关键字定义枚举类.mp4
 │ ├── [ 34M] 07_枚举_enum定义枚举类补充.mp4
 │ ├── [ 36M] 08_枚举_Enum类的常用方法.mp4
 │ ├── [ 42M] 09_枚举_枚举类实现接口.mp4
 │ └── [ 16M] 10_枚举_枚举的应用.mp4
 ├── 09_注解(一)/ │ ├── [ 14M] 01_注解的引入.mp4
 │ ├── [2.7M] 02_注解实例_Junit注解.mp4
 │ ├── [ 16M] 03_注解实例_文档注解.mp4
 │ ├── [ 18M] 04_注解实例_JDK内置的3个注解.mp4
 │ ├── [4.0M] 05_注解实例_替代配置文件的注解.mp4
 │ └── [ 29M] 06_自定义注解.mp4
 ├── 10_注解(二)/ │ ├── [7.4M] 01_元注解的概念解释.mp4
 │ ├── [ 44M] 02_元注解_Retention.mp4
 │ ├── [4.4M] 03_元注解_Retention补充.mp4
 │ ├── [ 43M] 04_元注解_Target.mp4
 │ ├── [ 28M] 05_元注解_Documented.mp4
 │ └── [ 20M] 06_元注解_Inherited.mp4
 ├── 11_反射(一)/ │ ├── [ 49M] 01_反射的引入.mp4
 │ ├── [1018K] 02_反射概念.mp4
 │ ├── [ 21M] 03_Class类.mp4
 │ ├── [ 11M] 04_提供丰富的类.mp4
 │ ├── [ 19M] 05_获取字节码信息的四种方式.mp4
 │ └── [ 11M] 06_可以作为Class类的实例的种类.mp4
 ├── 12_反射(二)/ │ ├── [ 22M] 01_补充上面的丰富的类中的内容.mp4
 │ ├── [ 26M] 02_获取构造器和创建对象.mp4
 │ ├── [ 25M] 03_获取属性和对属性进行赋值.mp4
 │ ├── [ 33M] 04_获取方法和调用方法.mp4
 │ ├── [ 10M] 05_获取类的接口,所在包,注解.mp4
 │ └── [9.6M] 06_关于反射的面试题.mp4
 ├── 13_集合(一)/ │ ├── [ 19M] 01_什么是算法什么是数据结构.mp4
 │ ├── [ 24M] 02_紧密结构,跳转结构.mp4
 │ ├── [ 19M] 03_集合的引入.mp4
 │ ├── [7.6M] 04_简要集合结构图.mp4
 │ ├── [ 59M] 05_集合的应用场合.mp4
 │ ├── [138M] 06_Collection接口的常用方法.mp4
 │ ├── [ 40M] 07_Collection接口的遍历方式.mp4
 │ ├── [157M] 08_List接口.mp4
 │ ├── [ 14M] 09_ArrayList实现类JDK1.7源码.mp4
 │ └── [ 12M] 10_ArrayList实现类JDK1.8源码.mp4
 ├── 14_集合(二)/ │ ├── [ 82M] 01_Vector实现类源码.mp4
 │ ├── [ 29M] 02_泛型的引入.mp4
 │ ├── [ 29M] 03_自定义泛型结构_泛型类_泛型接口.mp4
 │ ├── [ 18M] 04_自定义泛型结构_泛型类_泛型接口细节.mp4
 │ ├── [ 85M] 05_自定义泛型结构_泛型方法.mp4
 │ ├── [ 28M] 06_自定义泛型结构泛型参数存在继承关系的情况.mp4
 │ ├── [101M] 07_自定义泛型结构_通配符.mp4
 │ ├── [ 18M] 08_自定义泛型结构_通配符使用的细节.mp4
 │ ├── [ 82M] 09_自定义泛型结构_泛型受限.mp4
 │ └── [296M] 10_LinkedList实现类的使用.mp4
 ├── 15_集合(三)/ │ ├── [ 40M] 01_LinkedList简要底层原理图.mp4
 │ ├── [149M] 02_模拟LinkedList源码.mp4
 │ ├── [ 91M] 03_LinkedList源码解析(JDK1.8).mp4
 │ ├── [5.8M] 04_iterator()面试题.mp4
 │ ├── [ 21M] 05_迭代器具体实现.mp4
 │ ├── [ 16M] 06_ListIterator迭代器.mp4
 │ ├── [ 15M] 07_Set接口介绍.mp4
 │ ├── [ 20M] 08_HashSet的特点.mp4
 │ ├── [106M] 09_HashSet的简要原理.mp4
 │ └── [ 15M] 10_HashSet原理留下的疑问.mp4
 ├── 16_集合(四)/ │ ├── [ 21M] 01_LinkedHashSet的使用.mp4
 │ ├── [ 48M] 02_比较器的使用.mp4
 │ ├── [ 46M] 03_TreeSet的使用及原理.mp4
 │ ├── [1.7M] 04_Map接口中常用方法1.mp4
 │ ├── [ 60M] 05_Map接口中常用方法2.mp4
 │ ├── [ 98M] 06_Hashtable的使用.mp4
 │ ├── [ 27M] 07_TreeMap的使用.mp4
 │ ├── [194M] 08_HashMap的原理简单介绍.mp4
 │ ├── [108M] 09_HashMap中重要属性.mp4
 │ └── [100M] 10_HashMap的构造器.mp4
 ├── 17_集合(五)/ │ ├── [187M] 01_HashMap的put方法.mp4
 │ ├── [2.9M] 02_HashMap底层数组的扩容.mp4
 │ ├── [ 27M] 03_HashMap的两个经典面试题.mp4
 │ ├── [6.5M] 04_HashSet底层原理.mp4
 │ ├── [ 32M] 05_TreeMap底层源码.mp4
 │ ├── [ 11M] 06_TreeSet底层源码.mp4
 │ └── [ 19M] 07_Collections工具类.mp4
 ├── 18_IO流(一)/ │ ├── [ 16M] 01_File类的引入.mp4
 │ ├── [ 38M] 02_File对文件的操作.mp4
 │ ├── [5.8M] 03_File对目录的操作.mp4
 │ ├── [ 21M] 04_IO流的引入.mp4
 │ ├── [ 25M] 05_FileReader读取文件内容(1).mp4
 │ ├── [ 20M] 06_FileReader读取文件内容(2).mp4
 │ ├── [ 20M] 07_FileWriter写出数据操作.mp4
 │ └── [ 16M] 08_字符流完成文件复制.mp4
 ├── 19_IO流(二)/ │ ├── [6.1M] 01_警告-不要用字符流去操作非文本文件.mp4
 │ ├── [ 11M] 02_处理异常方式.mp4
 │ ├── [ 33M] 03_FileInputStream读取文件中内容.mp4
 │ ├── [ 18M] 04_字节流完成非文本文件的复制.mp4
 │ ├── [ 31M] 05_缓冲字节流(处理流).mp4
 │ ├── [8.6M] 06_比对非文本文件复制的三种方法的效率.mp4
 │ ├── [ 21M] 07_缓冲字符流(处理流).mp4
 │ └── [ 25M] 08_转换流.mp4
 ├── 20_IO流(三)/ │ ├── [ 14M] 01_转换流实现文本文件的复制.mp4
 │ ├── [ 31M] 02_System类对IO流的支持.mp4
 │ ├── [ 17M] 03_练习:键盘录入内容输出到文件中.mp4
 │ ├── [ 20M] 04_数据流.mp4
 │ ├── [ 19M] 05_对象流_序列化和反序列化.mp4
 │ ├── [ 29M] 06_实现Serializable接口.mp4
 │ ├── [ 84M] 07_serialVersionUID.mp4
 │ ├── [7.4M] 08_IDEA中配置序列化版本号.mp4
 │ └── [ 74M] 09_序列化细节.mp4
 ├── 21_多线程/ │ ├── [ 47M] 01_程序,进程,线程.mp4
 │ ├── [ 20M] 02_单核CPU与多核CPU的任务执行.mp4
 │ ├── [5.7M] 03_并行和并发.mp4
 │ ├── [161M] 04_创建线程的第一种方式.mp4
 │ ├── [ 86M] 05_设置读取线程名字.mp4
 │ ├── [104M] 06_习题_买火车票.mp4
 │ ├── [1.7M] 07_创建线程的第二种方式.mp4
 │ ├── [ 87M] 08_习题_买火车票.mp4
 │ ├── [134M] 09_创建线程的第三种方式.mp4
 │ └── [ 38M] 10_线程的生命周期.mp4
 ├── 22_多线程/ │ ├── [ 82M] 01_线程常见方法_设置优先级别.mp4
 │ ├── [ 63M] 02_线程常见方法_join.mp4
 │ ├── [ 87M] 03_线程常见方法_sleep.mp4
 │ ├── [ 16M] 04_线程常见方法_setDaemon.mp4
 │ ├── [ 24M] 05_线程常见方法_stop().mp4
 │ ├── [127M] 06_线程的同步_同步代码块(1).mp4
 │ ├── [4.7M] 07_线程的同步_同步代码块(2).mp4
 │ ├── [ 18M] 08_线程的同步_同步方法.mp4
 │ ├── [ 12M] 09_线程的同步_Lock锁.mp4
 │ └── [ 17M] 10_线程的同步的缺点.mp4
 ├── 23_多线程/ │ ├── [9.6M] 01_线程通信的引入.mp4
 │ ├── [ 24M] 02_生产者消费者分解1.mp4
 │ ├── [ 24M] 03_生产者消费者分解2.mp4
 │ ├── [228M] 04_生产者消费者分解3.mp4
 │ └── [3.3M] 05_Loc锁情况下的线程通信.mp4
 ├── 24_网络编程(一)/ │ ├── [161M] 01_网络编程的引入.mp4
 │ ├── [119M] 02_InetAddress,InetSocketAddress.mp4
 │ ├── [ 32M] 03_网络通信原理_套接字的引入.mp4
 … 其余 

10 项略,目录共 210 项