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 社區)