2.2 验证过程
- 新生代分为一个Eden区和两个survivor区,默认比例为是 8:1:1。(设置参数-XX:-UseAdaptiveSizePolicy可固定该比例)
- 对象优先被分配在eden区,eden区满了后会触发minor gc,把剩余存活的对象挪到为空的那块survivor区,下一次eden区满了后又会触发minor gc,把eden区和survivor区垃圾对象回收,把剩余存活的对象一次性挪动到另外一块为空的survivor区。
- 如果survivor区空间不足,通过担保机制挪动到老年代。
用图例所示:
- 未分配任何对象时,系统默认占用了1476KB
- 创建a1时,a1被分配在eden区
- 创建a2时,eden区剩余空间不足,触发MinorGC,同时survivor空间不足以存放a1,所以通过分配担保机制将a1提前转移到老年代去。同时将回收了一部分默认占用的1476K,未被回收的640K存放在其中一个survivor
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |