JVM面试题100道(含答案解析)
在Java后端开发面试中,JVM(Java Virtual Machine) 几乎是必问的核心知识点。
很多互联网公司(如大厂或中大型技术团队)在技术面试中都会重点考察 JVM内存模型、垃圾回收机制、类加载机制以及JVM调优能力。
本文整理了一份 JVM面试题100道(含答案解析),帮助Java程序员系统复习JVM知识体系。
适合人群:
- Java后端开发工程师
- 准备跳槽涨薪的Java程序员
- 想系统学习JVM原理的开发者
- 准备大厂技术面试的工程师

如果你想查看 完整JVM题库 + AI答案解析,可以访问:
👉
https://myquotego.com/html/questions?_from=csdn_158935487_1
一、JVM基础面试题(1-20)
1、什么是JVM?
JVM(Java Virtual Machine)是运行Java字节码的虚拟机,它负责:
- 加载类
- 执行字节码
- 管理内存
- 垃圾回收
JVM的存在使得Java具有 跨平台特性(Write Once Run Anywhere)。
2、JVM的主要组成部分有哪些?
JVM主要由以下部分组成:
- 类加载子系统
- 运行时数据区
- 执行引擎
- 本地方法接口(JNI)
- 垃圾回收器
3、JDK、JRE、JVM之间的关系?
- JDK:Java开发工具包
- JRE:Java运行环境
- JVM:Java虚拟机
关系:
JDK > JRE > JVM
4、JVM运行时数据区有哪些?
JVM运行时内存结构主要包括:
- 程序计数器
- Java虚拟机栈
- 本地方法栈
- 堆
- 方法区
5、程序计数器的作用是什么?
程序计数器用于记录当前线程执行的字节码指令地址。
特点:
- 线程私有
- 不会发生OOM
6、Java虚拟机栈是什么?
Java虚拟机栈是线程私有的内存区域,用于存储:
- 局部变量
- 操作数栈
- 方法返回地址
每个方法执行都会创建一个 栈帧。
7、什么是栈帧?
栈帧包含:
- 局部变量表
- 操作数栈
- 动态链接
- 方法返回地址
8、什么情况下会出现StackOverflowError?
当线程请求的栈深度超过虚拟机允许的最大深度时,会抛出:
StackOverflowError
常见原因:
- 无限递归
- 栈深度过大
9、什么情况下会出现OutOfMemoryError?
当JVM无法再分配内存时,会抛出:
OutOfMemoryError
常见情况:
- 堆内存不足
- 方法区内存不足
- 直接内存不足
10、什么是堆?
堆是JVM中 最大的一块内存区域,用于存放:
- 对象实例
- 数组
堆是 线程共享 的。
更多JVM面试题可以查看完整题库:
👉
https://myquotego.com/html/questions?_from=csdn_158935487_2
二、JVM内存结构面试题(21-40)
21、堆内存结构是怎样的?
堆通常分为:
- 新生代
- 老年代
新生代又分为:
- Eden区
- Survivor0
- Survivor1
22、为什么要分代?
因为不同对象生命周期不同:
- 大多数对象生命周期很短
- 少数对象生命周期很长
分代可以提高GC效率。
23、什么是TLAB?
TLAB(Thread Local Allocation Buffer)是线程私有的内存区域,用于减少线程竞争。
24、什么是对象分配策略?
对象分配通常优先在 Eden区。
大对象可能直接进入 老年代。
25、什么是逃逸分析?
逃逸分析用于判断对象是否会被其他线程访问,从而决定:
- 是否分配在栈上
- 是否进行锁消除
三、垃圾回收面试题(41-60)
41、什么是垃圾回收?
垃圾回收是自动回收 不再使用的对象内存。
42、判断对象是否存活的方法?
两种:
- 引用计数法
- 可达性分析
Java使用 可达性分析。
43、什么是GC Roots?
GC Roots是可达性分析的起点。
常见GC Roots:
- 栈中的引用
- 静态变量
- 常量
- JNI引用
44、常见垃圾回收算法有哪些?
主要有:
- 标记清除
- 标记整理
- 复制算法
- 分代收集算法
45、Minor GC 和 Full GC 有什么区别?
Minor GC:
- 发生在新生代
Full GC:
- 发生在整个堆
更多垃圾回收面试题与答案解析:
👉
https://myquotego.com/html/questions?_from=csdn_158935487_3
四、垃圾回收器面试题(61-80)
常见GC收集器:
- Serial
- ParNew
- Parallel Scavenge
- CMS
- G1
61、CMS垃圾回收器的特点?
特点:
- 低停顿
- 并发收集
缺点:
- 会产生内存碎片
62、G1垃圾回收器有什么特点?
特点:
- 面向服务端
- 可预测停顿时间
- 分区回收
63、G1为什么比CMS先进?
原因:
- 不会产生严重碎片
- 更好的停顿控制
五、类加载机制面试题(81-100)
81、Java类加载过程?
五个阶段:
- 加载
- 验证
- 准备
- 解析
- 初始化
82、什么是双亲委派模型?
类加载时:
子加载器
↓
父加载器
↓
Bootstrap
优点:
- 避免重复加载
- 提高安全性
83、哪些类加载器?
三种:
- Bootstrap ClassLoader
- Extension ClassLoader
- Application ClassLoader
84、如何打破双亲委派?
自定义 ClassLoader。
85、什么是热部署?
在不重启应用的情况下加载新类。
更多Java面试题整理
JVM面试题
MySQL面试题
Redis面试题
Spring面试题
完整面试题库:
https://myquotego.com/html/questions?_from=csdn_158935487_4
支持:
- AI模拟面试
- AI答案解析
- 2000+面试题
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)