java堆垃圾回收算法简单讲解

本文介绍了内存管理的三种核心算法:标签标记、复制算法以及解决碎片化的标签整理算法,分别针对老生代和新生代的内存需求,并讨论了各自的优缺点及适用场景。

常用算法有三种

1.标签标记算法:

可以理解为对堆中需要存活的对象打上一个标签,到回收时回收未打标签的,这个算法在存活对象较多的情况下效率很高,反之责容易造成内存碎片化的问题。适合老生代使用

2.复制算法:

将内存一分为2(a和b),先使用a,当a满了以后,将存活的对象复制到b中,继续使用a。这个算法在存活对象较少的情况下效率很高,但是需要拿出一块内存做交换空间进行移动。适合新生代使用,从E区复制到S0或S1

3.标签整理算法:

解决了标签标记方法的内存碎片化问题,在将不存活的对象清除后,对存活的对象进行移动。

但是因为在标签标记的算法基础上又对对象进行了移动,所以提高了成本。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值