一、虚拟机
部分一:
1、说一说GC算法(重点重点)还是那句话:举一反三,拿起纸笔给面试官讲
(1)从JVM内存模型开始说起,在纸上画出大概的组成部分,然后说出每个组成部分的特点
(2) 开始说说分代GC,这时就把GC算法引入进来,再结合每个区域的特点 把Minor GC 和Full GC 引入进来
(3) 可以跟他说说垃圾回收器,Serial 、 ParNew 、CMS 等等
2、JVM内存模型(重点)
3、新生老年代gc算法的实现;
4、 你知道垃圾回收机制么?
- 这个我之前可是仔细总结过的,我把垃圾判断算法、垃圾回收算法、垃圾回收器都仔细的说了一遍。
5、jvm内存划分,以及垃圾回收(重点)
6、GC算法,除了常见的复制算法,标记整理,标记清除算法,面试官问还知道哪些,
7、为什么java要有垃圾回收?
8、内存溢出了怎么办
9、 堆内存回收
10、java虚拟机类加载机制
11、(1)Java虚拟机的内存分区(虚拟机栈、方法区,本地方法区,堆等),还要你介绍每个分区的作用
(2)问jvm内存分代机制(会问分为那几个代,各个代特点),分代回收的优点(这个问了很多次)
12、minor GC和Full GC的触发时机
部分二:
1. 内存模型以及分区,需要详细到每个区放什么。
2. 堆里面的分区:Eden,survival from to,老年代,各自的特点。
3. 对象创建方法,对象的内存分配,对象的访问定位。
4. GC的两种判定方法:引用计数与引用链。
5. GC的三种收集方法:标记清除、标记整理、复制算法的原理与特点,分别用在什么地方,如果让你优化收集方法,有什么思路?
6. GC收集器有哪些?CMS收集器与G1收集器的特点。
7. Minor GC与Full GC分别在什么时候发生?
8. 几种常用的内存调试工具:jmap、jstack、jconsole。
9. 类加载的五个过程:加载、验证、准备、解析、初始化。
10. 双亲委派模型:Bootstrap ClassLoader、Extension ClassLoader、ApplicationClassLoader。
11. 分派:静态分派与动态分派。
JVM过去过来就问了这么些问题,没怎么变,内存模型和GC算法这块问得比较多,可以在网上多找几篇博客来看看。