
一、校招面试为什么爱问 JVM?
对校招来说,面试官并不指望你会 JVM 调优,他们更关心三件事:
👉 所以校招 JVM 的核心目标只有一句话: “别背概念,把最基础的说清楚。”
校招 JVM,90% 从这里开始问。
你可以这样回答(面试友好版):
JVM 在运行 Java 程序时,主要把内存分成 栈、堆、方法区,还有程序计数器和本地方法栈。
然后重点说 三个就够了。
栈里放什么?
📌 特点:
📌 校招面试常问:
递归调用太深会发生什么?
标准回答:
每次方法调用都会压栈,递归太深会导致栈空间耗尽,抛出
StackOverflowError。
一句话记住:
new 出来的对象,基本都在堆里
📌 特点:
📌 校招面试常问:
Java 中为什么会 OOM?
你可以这样答(很加分):
如果对象一直创建但没被回收,堆空间不够,就会发生
OutOfMemoryError。
主要放什么?
📌 校招够用的理解:
方法区主要存类相关的信息,不是放对象的地方。
很多同学只会说: 👉 “JVM 会自动回收垃圾”
但面试官更想听你下一句。
校招版标准答案:
JVM 使用 可达性分析,从 GC Roots 出发,如果一个对象不可达,就会被回收。
📌 你可以顺一句:
都是 GC Roots。
校招面试很爱问这个。
你只要记住一句话:
引用计数法无法解决循环引用问题。
👉 不用展开,点到即止。
你可以这样说:
因为大多数对象生命周期都很短,把它们放在新生代,回收更快。
📌 这是校招最标准、最安全的答案。
你可以用故事讲:
👉 面试官听到这里,基本已经满意了。
JVM 在校招里不是“拉开差距”的地方,而是“别扣分”的地方。
你不需要:
❌ 背 GC 参数 ❌ 讲 CMS / G1 原理
你只需要:
✅ 内存结构说清楚 ✅ GC 思路不乱 ✅ 回答有逻辑