JVM垃圾收集算法

标记-清除算法

这里写图片描述
算法核心思想很简单,就是对可回收对象进行标记,然后直接由垃圾收集器回收即可。如图,这就产生了一个问题,内存中的空间变得离散化,即内存碎片(对象的分配需要找到一片足够大小的连续内存空间,如果不足,还是会触发GC)。

复制算法

这里写图片描述
复制算法的核心就是,只使用一半内存用来分配对象,当使用的区域不足以分配时,复制算法将存活对象复制到预留的一半空间,并且是顺序排列的,然后清除本区域。
优点:没有内存碎片
缺点:内存使用率急剧下降!!

标记-整理算法

这里写图片描述
该算法很相似与标记清除,实际上这是为了解决标记-清除算法所带来的内存碎片问题而改进的算法。
同样对回收对象进行标记,清除后添加了对于存活对象全部向内存一段移动的操作。

分代收集算法

这种算法实际上就是组合使用上述算法。
新生代使用复制算法,因为新生代98%的对象都是朝生夕死(当然Hotspot中并没有直接对半分,而是分为一个Eden和两个survivor区,Eden与survivor比例为8:1),老年代采用标记整理或者标记清除算法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值