Minor GC:发生在年轻代,频率较高速度较快
Major GC:清理永久代
Full GC:是清理整个堆空间--包括年轻代和老年代
在Minor GC之前,检查老年代的可用空间是否大于年轻代的对象总和,若大于则是一次安全的GC。若不大于且允许承担失败,则计算历次晋升到老年的对象的平均大小是否大于老年代的最大可用空间,若大于则进行一次冒险的Minor GC,因为有可能老年代不能满足空间的需求,则进行一次Full GC;若不大于且不允许担保失败,则进行一次Full GC,让老年代腾出更多的空间