Minor GC:從年輕代回收內存
觸發條件
1、Eden區域滿
2、新創建的對象大小 > Eden所剩空間
Full GC:清理整個堆空間,包括年輕代和老年代
觸發條件
1、每次晉升到老年代的對象平均大小>老年代剩余空間
2、MinorGC后存活的對象超過了老年代剩余空間
3、永久代空間不足
避免Perm Gen占滿造成Full GC現象,可采用的方法為增大Perm Gen空間或轉為使用CMS GC
4、System.gc()
通過-XX:+ DisableExplicitGC來禁止RMI調用System.gc
5、CMS GC異常
promotion failed:MinorGC時,survivor空間放不下,對象只能放入老年代,而老年代也放不下造成
concurrent mode failure:GC時,同時有對象要放入老年代,而老年代空間不足造成
6、堆內存分配很大的對象
Major GC:清理老年代