【JVM学习笔记1】什么时候触发YGC,以及复制算法
JVM的堆内存,大致可以分为:年轻代(伊甸园区、幸存区1、幸存区2)、老年代、永久代。
总结:
1.当年轻代的伊甸园区Eden内,对象足够多时,会触发YGC;
2.YGC会清理没有被引用的对象。引用的对象进入空的幸存区(暂定为幸存区1);
3.空的幸存区2,与有1个存活对象的幸存区1,互换位置;
4.伊甸园Eden再次满时,再次触发YGC。存活的1个对象进入空的幸存区2中,并且原幸存区1中的1个存活对象,也进入到幸存区2中;
(本次YGC之后,伊甸园区为空,幸存区1为空,幸存区2内有2个存活的对象)
5.重复步骤3、步骤4;
6.当一个对象存活了15次,之后进入老年代。(参数:-XX:MaxTenuringThreshold=15 默认值,表示最大阈值)
---------------------------------------------------
立足软件测试领域,并重新定义测试!
---------------------------------------------------