【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 默认值,表示最大阈值)

 

posted @ 2021-01-07 14:59  愚人李愚  阅读(950)  评论(0编辑  收藏  举报