术语的统一
GC相关的术语有些比较混淆或有歧义,特别是Full GC和Major GC,有时候Major GC也是说FullGC
- 新生代GC(Minor GC / Young GC): Eden与Survivor0,Survivor1的垃圾收集
- 老年代GC(Major Gc / old Gc):老年代的垃圾收集。
- FullGC:收集堆和方法区的GC
- Mixed GC:收集整个新生代以及部分老年代的垃圾收集(G1)
什么时候触发Minor
- 新生代空间不足
什么时候触发Full GC
- 老年代空间不足
- 方法区空间不足
- 显式System.gc()
- MinorGC进入老年代的数据的平均大小大于老年代的可用内存
- 大对象直接进入老年代而老年代的空间不足