一 点睛
针对 HotSpot VM 的实现,它里面的 GC 按照回收区域又分为两大种类型:一种是部分收集(Partial GC),一种是整堆收集(Full GC)
1 部分收集(Partial GC)
不是完整收集整个 Java 堆的垃圾收集。其中又分为:
-
新生代收集(Minor GC / Young GC):只是新生代(Eden / S0, S1)的垃圾收集
-
老年代收集(Major GC / Old GC):只是老年代的垃圾收集。目前,只有 CMS GC 会有单独收集老年代的行为。注意,很多时候 Major GC 会和 Full GC 混淆使用,需要具体分辨是老年代回收还是整堆回收。
-
混合收集(Mixed GC):收集整个新生代以及部分老年代的垃圾收集。目前,只有 G1 GC 会有这种行为。
2 整堆收集(Full GC)
收集整个 java 堆和方法区的垃圾收集。
二 哪些情况会触发 Full GC
1 老年代空间不足
2 方法区空间不足
3 显示调用 System.gc()
4 Minor GC 进行老年代的数据的平均大小大于老年代的可用内存
5 大对象直接进入老年代,而老年代的可用空间不足
三 GC日志分类
1 MinorGC
MinorGC(或 young GC 或 YGC)日志:
[GC (