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:清理老年代