JVM 在進行 GC 時,并非每次都對堆內存(新生代、老年代;方法區)區域一起回收的,大部分時候回收的都是指新生代。
針對 HotSpot VM 的實現,它里面的 GC 按照回收區域又分為兩大類:部分收集(Partial GC),整堆收集(Full GC)
1、部分收集:不是完整收集整個 Java 堆的垃圾收集。其中又分為:
新生代收集(Minor GC/Young GC):只是新生代的垃圾收集
老年代收集(Major GC/Old GC):只是老年代的垃圾收集
目前,只有 CMS GC 會有單獨收集老年代的行為很多時候 Major GC 會和 Full GC 混合使用,需要具體分辨是老年代回收還是整堆回收
混合收集(Mixed GC):收集整個新生代以及部分老年代的垃圾收集
目前只有 G1 GC 會有這種行為
2、整堆收集(Full GC):收集整個 Java 堆和方法區的垃圾