千锋教育2023版Java面试宝典Java面试200题(含美团、字节、阿里大厂真

28.Full GC、Major GC和MinorGC有什么不同
我们见过很多 GC 名词如:Minor GC、Young GC、Full GC、Old GC、Major GC、Mixed GC等。那么这么多GC如何进行大致区分?
针对HotSpotVM的实现,它里面的GC其实准确分类有两种:
1.Partial GC(局部GC):并不收集整个GC堆的模式
·Young GC:只收集YoungGen的GC,Young GC 还有种说法就叫做MinorGC,两者是一个意思;
·Old GC:只收集 old gen的GC,只有垃圾收集器CMS的concurrent collection是这个模式;
●Mixed GC: 收集整个Young Gen以及部分oldgen的GC,只有垃圾收集器G1有这个模式;
1.FullGC(全局GC):收集整个堆,包括新生代,老年代,永久代(在JDK1.8 及以后,永
久代被移除,换为 metaspace元空间)等所有部分的模式;
接下来让我们再来了解下各个GC:
(1)Minor GC/Young GC
首先我们先来看下MinorGC/YoungGC,大家都知道,新生代(YoungGen)也可以称之为年轻代,这两个名词是等价的。那么在年轻代中的 Eden 内存区域被占满之后,实际上就需要触发年轻代的GC,或者是新生代的GC。
其实就是所谓的Minor GC,也可以称之为Young GC。
(2)Old GC
所谓的老年代GC,称之为OldGC更加合适一些,因为从字面意义上就可以理解,这就是所谓的老年代GC