垃圾收集算法

标记-清除算法

过程:分为标记和清除两个阶段。首先标记出所有需要回收的对象,在标记完成之后统一回收所有被标记的对象。
缺点:(1)标记和清除这两个阶段的效率都不高。
(2)标记清除之后会产生大量不连续的内存碎片,空间碎片太多可能导致以后运行过程中需要分配较大对象时,找不到足够连续的内存而触发另一次的垃圾收集动作。

复制算法

过程: 可用内存分为两部分,每次只使用其中一块,当这块内存用完,将还存活的对象复制到另外一块上面,然后再把使用的内存空间一次性的全部清除。
缺点:内存的使用空间变成原来的一半。

标记-整理算法

过程: 。分为标记和整理两个部分。标记过程和标记-清除算法的处理流程一样,而整理过程不是对可以回收的对象进行清理,而是让所有存活的对象都向一端移动,然后直接清理掉端边界以外的内存。

分代收集算法

过程: 根据对象存活周期的不同将内存划分为几块。一般将java堆分为新生代和老年代,根据各个年代的特点采取最适合的收集算法。新生代中有大批对象失去,少量的存活,采用复制算法,只需要少量存活对象的复制成本就可以完成收集,而老年代对象存活率高,就使用标记-清除和标记-整理算法来进行回收。当前的商业虚拟机都垃圾收集都采用这种算法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值