java中的垃圾回收机制常见问题

Minor GC是发生在新生代中的垃圾收集动作,采用的是复制算法。

Full GC是发生在老年代的垃圾收集动作,采用的是标记-清除/整理算法。

1、什么时候发生minor gc ?

当Eden区满时,触发Minor GC。

2、什么时候发生full gc/ major gc?

(1)调用System.gc时,系统建议执行Full GC,但是不必然执行
(2)老年代空间不足
(3)方法去空间不足
(4)通过Minor GC后进入老年代的平均大小大于老年代的可用内存
(5)由Eden区、From Space区向To Space区复制时,对象大小大于To Space可用内存,则把该对象转存到老年代,且老年代的可用内存小于该对象大小.

3、stop the world 发生时间?

gc 均会发生STW。

4、标记清除算法的根有哪些?

1. 虚拟机栈引用的对象
2. 本地方法栈引用的对象
3. 方法区中静态属性引用的对象
4. 方法区中常量引用的对象

你可能感兴趣的:(java中的垃圾回收机制常见问题)