为什么新生代采用标记复制算法?老年用标记复制呢?

不同收集器可能采用的算法不一样,我们这里是对serial 以及ParNew 垃圾收集器进行说明。

为什么新生代采用标记复制算法?

首先明确一点,新创建的对象一般都会先分配在新生代,进行垃圾回收时,会有很多垃圾需要清除。
采用标记复制,我们只需要将不是垃圾的对象标记出来,给他复制到另一块去,然后把现在这一块直接干掉。
比如说我是一个捡垃圾的老太太,我现在找到了一个垃圾箱,我就在里面翻一翻,把有用的瓶子拿走了,其他都不要。这就是标记复制的思想。

为什么老年代不采用标记复制,而是标记整理嘞?

首先我们再来明确一点,在老年代的对象要么存活时间比较久,也就是说有用的对象比较多,要么对象比较大,新生代直接放不下。
这个时候如果我们采用标记复制算法,需要复制的代价就比较高(因为需要留下来的对象比较多,而且可能会很大),不划算,当然其实标记整理算法需要的代价也不低,那为什么还要采用呢?因为复制算法有一个缺点,就是每次只能用一半的空间,会比较浪费,既然复制和整理代价都高,复制算法还只能用一半,那肯定就选择标记整理了啦。
不过现在新一些的垃圾收集器已经不采用了,像CMS和G1他们就已经不一样了。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值