垃圾回收算法

  1. 标记-清除
    两个阶段,首先对可回收对象进行标记,然后再清除。是最基础的垃圾回收算法,有两个问题:1、效率问题;2.标记清除后会产生大量不连续碎片。
    在这里插入图片描述

  2. 复制算法
    将内存平分为两块,对象只存放在其中一块,当一块内存使用完后,将还存活的对象移动到另外一块内存中,使用的那一块内容全部清理。这种算法适用于每次收集都有大量对象死去的情况,比如说新生代。
    在这里插入图片描述

  3. 标记-整理
    首先将要被回收的对象标记,然后将存活下来的对象移到一端,然后清理段边界以外的对象。
    在这里插入图片描述

  4. 分代回收算法
    当前虚拟机采用的均是这种分类算法,将内存分为新生代老年代,可以根据两者的不同特点使用不同的垃圾分类回收算法。比如说在新生代中,由于每次垃圾收集都会有大量的对象死去,适合采用复制算法,只需要付出少量对象的复制成本便可完成垃圾回收。而老年代的对象存活率比较高,必须选择“标记-清除”或“标记-整理算法进行回收”。

HotSpot 为什么要分为新生代和老年代?
答:将内存分为新生代老年代,可以根据两者的不同特点使用不同的垃圾分类回收算法。比如说在新生代中,由于每次垃圾收集都会有大量的对象死去,适合采用复制算法,只需要付出少量对象的复制成本便可完成垃圾回收。而老年代的对象存活率比较高,必须选择“标记-清除”或“标记-整理算法进行回收”。

以上图片来源:https://gitee.com/SnailClimb/JavaGuide/blob/master/docs/java/jvm/JVM%E5%9E%83%E5%9C%BE%E5%9B%9E%E6%94%B6.md

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值