JVM

JVM 知识地图

从类加载、运行时内存到垃圾回收与性能排查,理解 Java 程序如何真正运行。

难度:进阶更新:2026-07-10

为什么要理解 JVM

JVM 把 Java 源代码和具体硬件隔开,但生产问题最终仍会落到内存、线程、字节码和操作系统资源上。理解 JVM 的目标不是记参数,而是能解释和诊断程序行为。

知识路线

类加载

  • 加载、验证、准备、解析和初始化
  • 双亲委派模型
  • 类加载器隔离
  • 静态字段和初始化顺序

运行时数据区

  • 堆与对象分配
  • 虚拟机栈与栈帧
  • 方法区与元空间
  • 直接内存

垃圾回收

  • 可达性分析
  • 分代收集
  • CMS、G1 与现代收集器
  • 停顿时间、吞吐量和内存占用之间的权衡

性能排查

  • GC 日志
  • 线程快照
  • 堆转储
  • CPU、内存和锁竞争定位

一句话原则

先确定现象属于 CPU、内存、线程还是外部依赖,再选择工具;不要看到 OutOfMemoryError 就先调整堆大小。

DISCUSSION

评论与讨论

留下你的想法