JVM 学习计划表(2025 版)
📚 基础阶段(2 周)
1. JVM 核心概念
- JVM 作用与体系结构
理解 JVM 在 Java 跨平台运行中的核心作用,掌握类加载子系统、运行时数据区、执行引擎的交互流程 - 内存结构与数据存储
学习堆、方法区(元空间)、虚拟机栈、本地方法栈、程序计数器等内存区域特性及线程隔离机制 - 类加载机制
掌握加载→验证→准备→解析→初始化流程,理解双亲委派模型与打破场景(如 SPI 机制)
🚀 进阶阶段(3 周)
2. 垃圾回收机制
- GC 算法原理
对比标记-清除/复制/标记-整理算法的实现与适用场景,分析分代收集策略(Young/Old 区) - 垃圾收集器实战
ParNew/CMS/G1/ZGC 等收集器的工作机制,通过-XX:+UseConcMarkSweepGC
等参数配置实战 - 内存泄漏排查
使用 MAT 分析堆转储文件,定位java.lang.OutOfMemoryError
异常根源
3. 性能调优
- JVM 参数解析
掌握-Xms/-Xmx
堆内存配置、-XX:MetaspaceSize
元空间调整、-XX:+HeapDumpOnOutOfMemoryError
等关键参数 - 监控工具链
熟练使用 JConsole、VisualVM、Arthas 进行实时监控,通过 GC 日志分析吞吐量与停顿时间
🔧 实战阶段(2 周)
4. 生产环境优化
- 线上故障诊断
模拟 Full GC 频繁、CPU 飙高等场景,使用jstack/jmap/jstat
进行线程/内存快照分析 - JIT 编译器原理
理解热点代码检测机制,掌握逃逸分析与栈上分配优化技术 - 容器化部署
Docker 环境下 JVM 内存配置的特殊性,避免容器内存超限导致的 OOM Kill
🎓 高级阶段(2 周)
5. 底层原理扩展
- 字节码指令集
通过javap -v
反编译分析invokevirtual/invokespecial
等指令的执行过程 - JVM 源码解读
研究 HotSpot 源码中对象内存布局(对象头/实例数据/对齐填充)的实现细节 - JVM 参数调优模板
整理高并发/低延迟/大数据量等不同场景的最佳实践参数组合
🔄 持续学习
- 技术演进跟踪
关注 Project Loom(虚拟线程)、ZGC(亚毫秒级停顿)等新特性动态 - 社区资源利用
参与 JVM 峰会、研读《深入理解Java虚拟机》等经典著作 - 实验室环境搭建
通过 JVM-Sandbox 等工具进行字节码插桩实验
📌 学习建议:
- 结合
jdk/src/hotspot
源码进行调试分析- 每周完成 1 个 GC 日志分析实验并记录优化效果
- 参与 GitHub 开源项目贡献(如 OpenJDK 社区)