千鋒教育2023版Java面試寶典Java面試200題(含美團、字節(jié)、阿里大廠真

28.Full GC、Major GC和MinorGC有什么不同
我們見過很多 GC 名詞如:Minor GC、Young GC、Full GC、Old GC、Major GC、Mixed GC等。那么這么多GC如何進行大致區(qū)分?
針對HotSpotVM的實現(xiàn),它里面的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 內(nèi)存區(qū)域被占滿之后,實際上就需要觸發(fā)年輕代的GC,或者是新生代的GC。
其實就是所謂的Minor GC,也可以稱之為Young GC。
(2)Old GC
所謂的老年代GC,稱之為OldGC更加合適一些,因為從字面意義上就可以理解,這就是所謂的老年代GC
標簽: