为什么新生代内存需要有两个Survivor区

介绍:新生代会被分为一块较大Eden空间和两块较小的Survivor空间(分别称为from和to),默认大小比例为8:1:1

解答:新生代在垃圾收集时采用的是标记-复制算法,每次分配内存的时候只分配其中的eden区和其中一块Survivor区。发生垃圾收集的时候,只收集使用过的eden区和使用过的Survivor区,把存活下来的对象一次性复制到另一块Survivor上,再清理掉eden区和使用过的Survivor区。

产生的问题:虽然每次新生代收集(Minor GC)都能达到98%的回收率,但是也会出现Survivor区放不下存活的对象。这时就需要依赖其他内存区域进行内存担保,如果Survivor区不够存放上一次新生代收集下来的存活对象,这么对象将通过内存担保机制直接进入老年代。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值