1. Minor GC(新生代GC)的触发条件数组
当Eden区满时,触发Minor GC。spa
2. Full GC(老年代GC)的触发条件对象
(1)直接调用System.gc内存
(2)老年代空间不足(新生代存活下来的对象转入、大对象的建立等引发)反射
调优策略:gc
(3)方法区空间不足(系统中要加载的类、反射的类和调用的方法较多等致使)程序
调优策略:方法
(4)Minor GC 时,survivor放不下,对象只能放入老年代,而此时老年代也放不下统计
调优策略:时间
增大survivor space、老年代空间
(5)经过Minor GC后进入老年代的平均大小大于老年代的连续可用内存(Minor GC 时会作一个判断,统计以前晋升到老年代的对象的平均大小)
例如程序第一次触发Minor GC后,有6MB的对象晋升到老年代,那么当下一次Minor GC发生时,首先检查老年代的剩余空间是否大于6MB,若是小于6MB,则执行Full GC。