585 字
3 分钟
JVM 面试导读:内存、类加载、对象与垃圾回收
JVM 第一轮建立从字节码到对象再到回收的完整路线。以 HotSpot 的常见实现帮助理解,同时分清规范概念和具体实现,避免把某个 JDK 或收集器的细节背成永远成立的规则。
知识地图
字节码 → 类加载/初始化 → 执行引擎 → 运行时数据区 → 对象分配/引用 → 可达性分析 → GC → 日志/线程栈/堆排障阅读路线与目录
导读排在系列最前面,下面的顺序与专题导航一致。每篇先读问题和解释,再尝试不看答案口述“是什么、怎么工作、有什么边界”,不需要逐句背原文。
| 专题 | 掌握标准 |
|---|---|
| JVM 总览 | 知道类加载、内存、执行引擎和 JNI 的职责。 |
| 运行时内存 | 区分堆、方法区、栈、计数器和元空间实现。 |
| 类加载与双亲委派 | 区分准备与初始化,理解类身份。 |
| 对象与四种引用 | 解释 TLAB、晋升和强软弱虚引用。 |
| 可达性分析 | 能用循环引用例子解释是否存活。 |
| 补充:GC Roots | 查漏根路径,不必与上一文章重复背诵。 |
| 回收算法 | 比较标记清除、复制和整理。 |
| 常见收集器 | 知道 Parallel、G1、ZGC 的目标,CMS 按历史知识理解。 |
| GC 名称与范围 | 知道术语受实现影响,Full GC 频繁不能直接等于泄漏。 |
| 基础排障 | 把 CPU、内存现象对应到线程栈、GC 和对象引用证据。 |
第一轮准备到哪里?
按前五篇建立主线,再读算法、收集器、GC 名称和排障。GC Roots 是补充速查。暂不展开 G1/ZGC 屏障源码、完整调优参数列表和复杂线上容量建模。
自查问题
- 方法区与元空间是什么关系,字符串常量池在哪里?
- 加载类是否一定执行静态代码块?
- 两个对象互相引用为什么仍可能回收?
- OOM 是否只与堆大小有关?
回答这些问题时,先给结论,再说明机制,最后用文章中的例子或边界验证。答不清时回到对应专题,不另外堆一套重复题库。
相关系列
框架学习接 Spring 导读。
JVM 面试导读:内存、类加载、对象与垃圾回收
https://blog.xqcherry.top/posts/interview/jvm/jvm-interview-roadmap/ 目录