YGC(Young GC) / MinorGC: 其实是一个东西,作用都是针对新生代(young gen)进行的垃圾回收,新生代空间不足会触发。 OldGC: 针对老年代的垃圾回收,老年代空间不足会触发。 FGC: 针对新生代,老年代都进行一次垃圾回收,所以是 Full (全部)GC。在堆的使用率超过80% 会触发,代码中显式调用 :System.GC;也会不定时触发。 MixedGC: G1收集器特有的概念,在堆内存使用率超过45%就会触发的对新生代和老年代都进行的一次混合型GC,效率会比FGC要高,功能和FGC类似。 MajorGC: Major(主要的)GC这个概念很模糊,有一批人觉得针对老年代的OldGC就是MajorGC,有一批觉得针对Young 和 old 同时进行的FGC才算是MajorGC。我个人是偏向于针对OldGC属于MajorGC. 总而言之,不同的JVM虚拟机对分代,对GC回收的概念问题可能会有稍微的歧义,但是求同存异的基础下,我们知道他们的目的其实都是回收内存空间,剔除没用的对象,这样是不是容易理解一点呢?