-
新生代 GC(Minor GC):指发生在新生代的垃圾收集动作,因为 Java 对象大多都具备朝生夕灭的特性,所以 Minor GC 非常频繁,一般回收速度也比较快。
-
老年代 GC(Major GC / Full GC):指发生在老年代的垃圾收集动作,出现了 Major GC,经常会伴随至少一次 Minor GC(非绝对),MajorGC 的速度一般会比 Minor GC 慢10倍以上。
-
Minor GC与Full GC触发条件:
-
- 当Eden区没有足够的空间进行分配时
- 老年代最大可用连续空间大于Minor GC历次晋升到老年代对象的平均大小
-
Full GC触发条件:
-
- 调用System.gc()时(系统建议执行Full GC,但是不必然执行)
- 老年代空间不足时
- 方法区空间不足时
- 老年代最大可用连续空间小于Minor GC历次晋升到老年代对象的平均大小
- CMS GC在垃圾回收的时候,当对象从Eden区进入Survivor区,Survivor区空间不足需要放入老年代,而老年代空间也不足时



