这门课解决什么问题
Java 程序员最常遇到的三类"看起来会、用起来懵"的问题,几乎都出在 JVM 这一层。第一类是性能调优:线上堆溢出了、Full GC 停得久,却不知道是哪个参数、哪段代码导致的。第二类是原理漏洞:知道 new 会分配到堆,但分不清栈帧里局部变量表和本地方法栈怎么协作,遇到并发场景就凭感觉写。第三类是面试卡壳:JVM 知识点散落在八股文里,没有一条把加载、内存、垃圾回收串联起来的主线,背了忘、忘了再背。
这门入门课的任务,就是把上述三类问题统一到同一个框架下讲清楚。它不追求把 HotSpot 源码逐行啃完,而是先让你建立"Java 程序在虚拟机里跑起来之后,字节码经历了什么、内存空间是怎么划分、垃圾什么时候被回收"的完整心理模型。模型有了,后面去看调优参数、分析线程 dump、排查 OOM,才有依据。
适合什么基础、学习顺序、学完能做什么
课程面向已经能独立写 Java 代码的初学者。具体来说,你需要熟练掌握语法、集合、IO 和异常处理,能独立写简单的 Web 服务或后台工具,但对运行期机制缺乏系统认知。如果你还在问"main 方法到底在哪里执行",或者无法解释局部变量在多线程下是否安全,建议先把 Java 基础巩固一轮再进入。门槛不低,但也不是要你有多年调优经验。
学习顺序建议按这四条主线推进。首先是 JVM 内存区域划分,这是整套体系的底座,后面讲的垃圾回收、类加载、参数调优都建在这上面。其次是类加载机制,理解一个 .class 文件是怎么变成运行时可执行状态的,这对排查 NoClassDefFoundError、理解静态代码块执行时机至关重要。然后是垃圾回收基础,搞懂有哪些回收算法、常见收集器各自的特点,而不是只记住几个名词。最后再进参数与简单调优,学会用 jps、jstat 这类工具定位问题。不要跳过任何一块,后面内容会频繁回溯前两块的知识。
学完这门入门篇之后,你应该能独立完成这几件事:画出 JVM 内存结构图并解释每块存什么、说明对象从创建到死亡的完整生命周期、用命令行工具观察 GC 行为、读得懂常见的 OOM 和 StackOverflowError 异常信息、在面试里把 JVM 知识点串成一条清晰的讲述线。至于深入调优、字节码操作、容器化部署里的 JVM 适配,则是入门之后再向上走的下一步。
资料怎么配合练习
课程配套的练习资料主要用来验证理解,而不是单纯跟着视频敲代码。第一步是手画内存区域图,标注每块区域的线程共享还是私有、存储什么内容,画完对照课程里的讲解纠错。第二步是写几段触发不同异常的小程序,比如递归调用导致栈溢出、创建大数组触发堆溢出,然后用命令行工具观察堆和 GC 的变化,把理论现象和实际输出对上号。第三步是做概念辨析,比如区分串行和并行收集器的适用场景,用表格形式整理它们的特点,比死记硬背更有效。这些练习不要求复杂,但每一块都要动手,否则看过就算学过的错觉很难打破。
课程目录
整理中,敬请期待。






