Java 知识体系:从语言基础到并发、JVM 与 IO
这份知识体系按「语言基础 → 集合 → 并发 → JVM → IO → 新特性」组织 Java 模块的全部文章。它不是目录堆砌,而是一张学习地图:每个主题解决什么问题、依赖哪些前置、按什么顺序推进,都有明确答案。
模块全景
| 主题 | 解决什么问题 | 主要前置 |
|---|---|---|
| Java 基础 | 语法、面向对象、泛型、反射、代理、序列化等语言机制 | 无 |
| Java 集合 | 容器选型、源码实现与复杂度权衡 | 基础(泛型、equals/hashCode) |
| Java 并发 | 线程、锁、JMM、CAS、AQS、线程池的正确使用 | 基础 + 集合 |
| JVM | 内存区域、类加载、垃圾回收与线上排障 | 基础,配合并发更佳 |
| Java IO | BIO/NIO/AIO、多路复用与 IO 相关设计模式 | 基础,线程模型涉及并发 |
| Java 新特性 | Java 8 之后各版本的语言、标准库与 JVM 演进 | 按项目版本选学 |
学习顺序与依赖关系
基础是唯一的硬前置:值传递、泛型擦除和反射贯穿后面所有模块。集合紧随其后,因为 equals/hashCode 约定、泛型边界都要在 HashMap、ArrayList 这类真实容器里落地,读源码也是从这里开始练的。并发排在第三,它需要集合垫底——ConcurrentHashMap 的分段锁演进、并发容器的取舍,都要先理解单线程容器的实现才能看懂。
JVM 与并发并行或稍后进行均可:内存区域和 GC 依赖对对象生命周期的理解,而排查死锁、分析线程转储又需要并发知识打底。IO 相对独立,阻塞位置与线程模型是核心线索,放在并发之后学阻力最小。新特性不参与线性顺序,按项目实际运行的 JDK 版本选学即可。
各阶段的验收标准
- 基础:能解释值传递、泛型擦除与动态代理的真实语义。
- 集合:能从源码层面说清 HashMap 的扩容、树化与 ConcurrentHashMap 的线程安全设计。
- 并发:能用 happens-before 分析一段代码是否线程安全,而不是拿「跑一遍没出错」当证据。
- JVM:遇到 OOM 或 CPU 飙高,能按「观察现象—提出假设—收集证据—验证修复」的流程定位。
- IO:能讲清 BIO、NIO、AIO 在阻塞位置和线程模型上的差异,知道业务代码为何优先选成熟框架。
- 新特性:能说明引入 Lambda、Record 或虚拟线程各自解决了什么、代价是什么,而不是为新而新。
小结
学习顺序本质上是依赖顺序:语言机制支撑容器实现,容器与并发支撑框架和中间件,JVM 与 IO 支撑排障与性能分析。沿依赖推进,每一步都能在前一步找到落点,知识才不会学成彼此孤立的碎片。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Dai Wei!
评论

