JVM虚拟机 垃圾回收算法

标记-清除算法

标记所有要回收的对象,然后统一回收。
不足:1.标记和清除的效率都不高。
2.会产生大量不连续的碎片。
3.在碎片中无法找到足够的连续内存又会触发垃圾回收。
在这里插入图片描述

复制算法

将内存分为两块,每次只使用其中一块。当这一块用完了,将所有存活对象复制到另一块上,然后将这一块的内存全部清理掉。
缺点:分为两半是在是太多了。因为很多对象刚刚被引用就死了,所以1:1不明智。浪费了50%的内存。

在这里插入图片描述

标记-整理算法

标记所有要回收的对象。然后把所有存活对象复制到内存的一端(覆盖掉要回收的对象)。然后把边界以外的内存全部清除。
在这里插入图片描述

分代回收

主流算法。复制算法的升级。

将对象分为新生代,老年代和永久代。
新生代是新生的对象,很多刚出生就死了的对象。
老年代是存活得比较久,但还是可能死的对象。
永久代是一般不死的。

将内存分为原始区(eden),两个生存区(survivor from和survivor to),一个老年区和一个永久区。
原始区:存放刚刚新生的新生代。经历垃圾回收动作存活下来的进入生存区。
生存区:存放活过一段时间的新生代,他们每经历过一次垃圾回收动作存活下来后就会去另一个生存区。生存了很多次以后就会进入老年区。
老年区:存放活了很久的对象
永久区:存放如类加载信息等一般不死的对象的区域。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值