为什么新生代有两个survivor?

利用两个survivor达到新生代无碎片的目的:

EdenSurvivor1Survivor2

S1、程序初始化,新生代的三个空间均为空

S2、Eden被分配的新对象占满,触发第一次Minor GC,Eden中存活对象被复制到Survivor1中,剩余对象被回收(回收后,Eden为空,Survivor1无碎片地存放所有存活对象,Survivor2为空)

S3、Eden再次被新对象占满,触发第二次Minor GC,此时Eden和Survivor1中的存活对象被复制到Survivor2中,剩余对象被回收(回收后,Eden为空,Survivor1为空,Survivor2无碎片地存放所有存活对象)

S4、如此交替,在执行一定次数的Minor GC后,会通过Full GC将survivor中的存活对象移入老年代。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值