Java后端常见面试题集合二(JVM篇)
文章目录
前言
本章主要记录JVM常见知识点和面试相关的内容。
一、JVM是什么?
二、JVM组成部分
三、什么是程序计数器?
四、能介绍一下java堆吗?
五、什么是虚拟机栈?
六、堆和栈的区别是什么?
七、什么是方法区?能介绍一下吗?
(1)方法区简介
(2)本地内存中的运行常量池
(3)具体回答
八、什么叫做直接内存?举例文件拷贝流程
(1)常规IO拷贝文件操作
(2)NIO拷贝文件操作
(3)具体回答,什么是直接内存?
九、什么是类加载器?类加载器有哪些?
(1)什么是类加载器?
(2)类加载器有哪些?
(3)什么是双亲委派模型?
(4)为什么使用双亲委派机制?
(5)具体怎么回答双亲委派机制及为什么采用该机制?
十、说一下类装载的执行过程?
大体流程
(1)加载-阶段
(2)验证-阶段
(3)准备-阶段
(4)解析-阶段
(5)初始化-阶段
(6)使用-阶段
(7)卸载-阶段
方法执行完毕,JVM开始销毁对象实例。
(8)具体怎么回答,类装载的过程?
十一、对象什么时候可以被垃圾回收器回收?
(1)大体流程
(2)引用计数法
存在缺点,如果对象出现循环引用,该方法失效
(3)可达性分析算法
那些可以作为GC root?
(4)具体回答对象什么时候被垃圾回收器回收?
十二、JVM垃圾回收算法有哪些?
- 标记清除算法
- 标记整理算法
- 复制算法
(1)标记清除算法
(2)标记整理算法(一般适用于老年代垃圾回收)
(3)复制算法(一般适用于年轻代垃圾回收)
(4)具体怎么回答JVM垃圾回收算法有哪些?
十三、JVM的分代回收是什么?
(1)堆的空间分配
- 回收执行策略
(2)名词解析:MinorGC . MixedGC . FullGC
(3)具体怎么回答JVM的分代回收?
十四、JVM有哪些垃圾回收器?
- 串行垃圾回收器
- 并行垃圾回收器
- CMS(并发)垃圾回收器
- G1垃圾回收器
(1)串行垃圾回收器
(2)并行垃圾回收器
(3)CMS(并发)垃圾回收器
(4)具体怎么回答jvm垃圾回收器?
十五、详聊G1垃圾回收器
简介
(1)初始化时-新生代回收阶段
(2)过一段时间后-新生代回收阶段
E 和老的S,复制到新的S,中见复制次数多的对象,放到O里面
最后的效果
(3)老年代到达阈值-并发标记处理阶段
(4)混合收集阶段
(5)具体怎么回答G1?
十六、JVM中垃圾回收,强引用,软引用,弱引用,虚引用的区别?
(1)强引用
(2)软引用
(3)弱引用
(4)虚引用
(5)具体怎么回答区别?
总结
本篇主要针对,JVM组成,类加载器,垃圾回收进行常见面试题总结。个人整理,请仔细甄别。