JVM 基础机制。

考查重点:运行时内存与字节码执行。类加载建立可执行类,栈帧记录方法调用、堆放对象,解释器/JIT 执行字节码,GC 回收不可达对象

本题目录

参考答案

核心回答

JVM是执行Java字节码的运行环境,基础机制可沿着类加载、运行时内存、执行引擎和内存回收理解:类加载器把类定义引入虚拟机,连接与初始化建立可执行状态;运行时数据区保存栈帧、对象和类信息;解释器及JIT执行代码;GC管理可回收的对象空间。

JVM规范规定可观察语义和结构,HotSpot等实现决定具体编译、分配与回收策略。JVM也不等于Java语言本身,其他语言也可以生成JVM可执行的字节码。

四部分怎样连接

类经过加载、验证、准备、解析和初始化,解析可按实现与规范要求延迟进行。默认类加载通常父优先,但自定义加载器可按受控规则改变委派。

程序计数器、虚拟机栈等主要服务线程执行;栈帧保存局部变量、操作数栈和调用信息。堆主要存放对象与数组,方法区是规范概念;现代HotSpot的类元数据主要使用元空间,不能把JDK7永久代原样搬到JDK8之后。

执行引擎可先解释字节码,对热点代码进行即时编译优化。JIT优化和GC都会消耗资源,因此响应时延不能只看业务方法本身。GC从可达性等机制判断对象是否可回收,具体算法与暂停特征取决于收集器。

基础排障怎样落地

线程栈溢出关注调用深度和递归,堆OOM关注分配与对象保留,元空间问题关注类加载与加载器生命周期。CPU高则结合线程状态、热点调用和GC占比定位,不能把所有内存异常统称“堆不够”。

面试继续追问时,再围绕具体版本和收集器展开,而不是一开始罗列所有参数。

参考资料

相关面经

4 篇

公司未注明

后端实习
日常实习
查看原面经 →
习惯用java几;各版本之间的差异和特性有了解过吗;虚拟机有了解吗

美团

AI Agent 开发工程师
一面
查看原面经 →
jvm

亚信科技

Java 开发工程师
实习
查看原面经 →
Java基础:ArrayList、LinkedList、Bean生命周期、Spring事务失效、自动装配、JVM、测试注解等基础知识点

腾讯

后端开发工程师(AI)
实习一面
查看原面经 →
说一说关于JVM你都知道哪些

相关题目

4 题