Skip to content

JVM 知识体系总览


第1阶段 内存模型 → JVM内存结构、对象布局
第2阶段 垃圾回收 → GC算法、收集器
第3阶段 类加载机制 → 双亲委派、类加载器
第4阶段 JIT编译 → 热点代码、逃逸分析
第5阶段 线上排查 → OOM定位、CPU诊断
JVM
┌───────────┬───────────┼───────────┐
▼ ▼ ▼ ▼
内存模型 垃圾回收 类加载 JIT编译
│ │ │ │
• 堆/栈/方法区 • 标记清除 • 双亲委派 • 热点探测
• 对象布局 • 复制算法 • 类加载器 • 逃逸分析
• 指针压缩 • G1/ZGC • 模块化 • 栈上分配
• 元空间 • 分代收集 • 破坏场景 • JVM参数
专题考察频率难度核心能力
内存模型★★★★★对象分配
垃圾回收★★★★★G1/ZGC
类加载★★★★☆双亲委派
JIT编译★★★☆☆逃逸分析
线上排查★★★★☆问题定位

🧠 内存模型与对象

JVM 运行时数据区划分;堆/栈/方法区的职责边界;对象创建与内存布局;指针压缩与对象头结构。

♻️ 垃圾回收算法与收集器

可达性分析与引用类型;标记-清除/复制/标记-整理算法;分代模型;G1/ZGC/Shenandoah 收集器对比。

📦 类加载机制

类加载的五个阶段;双亲委派模型的原理与破坏场景;自定义类加载器;模块化系统(JPMS)。

⚡ JIT 编译与性能调优

解释执行 vs JIT 编译;热点代码探测;逃逸分析与栈上分配;常用 JVM 参数与 GC 日志分析。

🔧 线上问题排查

OOM 类型与排查方法;CPU 飙高定位;GC 停顿(STW)分析;常用诊断工具 jmap/jstack/arthas。


专题初级中级高级代表问题
内存模型⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐对象一定在堆上分配吗?
垃圾回收⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐G1 和 ZGC 的区别?停顿时间如何控制?
类加载⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐双亲委派为什么能被打破?Tomcat 是怎么做的?
JIT 调优⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐逃逸分析是什么?对 GC 有什么影响?
线上排查⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐如何排查 OOM?如何定位 CPU 100%?

Java 源代码(.java)
↓ javac 编译
字节码(.class)← 平台无关,"一次编写,到处运行"的关键
↓ JVM 加载并执行
机器码(CPU 直接执行)← JIT 编译热点代码为本地机器码
JVM 核心职责:
┌─────────────────────────────────────────┐
│ 类加载子系统 → 运行时数据区 → 执行引擎 │
│ ↑ ↑ ↑ │
│ .class 文件 内存管理与GC 解释/JIT │
└─────────────────────────────────────────┘

┌──────────────────────────────────────────────────────┐
│ JVM 进程 │
│ ┌─────────────────────────────────────────────┐ │
│ │ 堆(Heap)—— 线程共享 │ │
│ │ Young Gen(Eden + S0 + S1) | Old Gen │ │
│ └─────────────────────────────────────────────┘ │
│ ┌──────────────┐ ┌──────────────────────────┐ │
│ │ 方法区/元空间 │ │ 直接内存(堆外) │ │
│ │ 线程共享 │ │ NIO ByteBuffer 等 │ │
│ └──────────────┘ └──────────────────────────┘ │
│ ┌──────────────────────────────────────────┐ │
│ │ 线程私有区域 │ │
│ │ 虚拟机栈 | 本地方法栈 | 程序计数器 │ │
│ └──────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────┘

版本重要变化
Java 8永久代 → 元空间;Lambda/Stream;默认 Parallel GC
Java 9模块化(JPMS);G1 成为默认 GC
Java 11ZGC 实验性引入;LTS 版本
Java 17ZGC/Shenandoah 生产可用;Sealed Classes;LTS
Java 21ZGC 全面增强;虚拟线程(Project Loom)GA;LTS

第1天 内存模型与对象 → 夯实基础,理解 JVM 的内存全景
第2天 垃圾回收算法 → GC 是面试最高频,算法原理必须透彻
第3天 垃圾收集器对比 → G1 vs ZGC 是中高级必问
第4天 类加载机制 → 双亲委派和破坏场景是加分项
第5天 JIT 与线上排查 → 综合能力体现,高级岗位必考