1. 什么情况下会发生栈内存溢出
2. JVM内存结构,Eden和Survivor的比例
3. JVM为什么要分为新生代、老年代和持久代。新生代中为什么要分为Eden区域和Survivor区。
4. JVM中一次完整的GC流程是什么样,对象如何晋升到老年代,介绍几种主要的JVM参数。
5. 介绍几种垃圾收集器,各自的优缺点,重点介绍cms和G1收集器,包括原理,流程,优缺点。
- 优点:与用户线程并发执行,减少停顿时间。
- 缺点:基于“标记-清除”算法,收集结束时可能会产生大量空间碎片;对CPU资源敏感;无法处理浮动垃圾。
- G1收集器
- 工作原理:G1收集器是一种面向服务器的垃圾收集器,基于“标记-整理”和“复制”算法实现。他将堆空间划分为多个大小相等的独立区域,并优先收集垃圾最多的区域。
- 优点:适用于高吞吐量的应用程序,在多个处理器之间并行的进行操作,提高处理效率。
- 缺点:启动时间长,需要对整个堆空间进行分区,启动时间较长。需要额外的内存来存储标记信息和回收状态信息。