垃圾回收算法整理(清晰明了,你一定能懂)

一、标记/清除算法

描述:当内存耗尽,程序停止,开启GC线程,标记GCRoots可达的对象,清除所有未标记的对象。
缺点:1.内存空间不连续。2.效率较低,GC线程执行时,程序停止。
额外:程序停止原因:如果程序与GC线程同时执行,会有一些新建的对象没有别标记导致错误清除。

二、复制算法

描述:将内存分为两块,活动区域和空闲区域,每次使用活动区域。当内存耗尽,程序停止,开启GC线程,将活动区域的对象复制到空闲区域且内存地址连续排列。
优点:内存空间整齐。
缺点:1.浪费了一半的内存。2.当存活对象较多时,大量复制对象,效率较低。

三、标记/整理算法

描述:当内存耗尽,程序停止,开启GC线程,标记GCRoots可达的对象,将标记的对象整理为内存地址连续排列,清除未标记的对象。
优点:1.剩下了一半内存。2.内存空间整齐。
缺点:要进行标记、整理效率较低。

四、分代搜集算法

背景知识:jvm将堆内存分成新生代、老年代。
新生代:对象存活概率较低。
老年代:对象存活概率较高。
将好像垃圾分类,分开用不同的方式处理
回到正题

描述:对新生代使用复制算法,老年代使用标记/清除或标记/整理算法。
额外:什么时候会将新生代内的对象转移到老年代?
1.新生代对象的年龄达到在jvm中设置的规定年龄
2.新生代内存满了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

枷锁编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值