jvm垃圾回收算法有哪些

 我来答
科技黑_
2020-11-16 · 超过89用户采纳过TA的回答
知道小有建树答主
回答量:443
采纳率:87%
帮助的人:13.3万
展开全部

1.标记–清除算法

执行步骤:

  • 标记:遍历内存区域,对需要回收的对象打上标记。

  • 清除:再次遍历内存,对已经标记过的内存进行回收。

2.复制算法

将内存划分为等大的两块,每次只使用其中的一块。当一块用完了,触发GC时,将该块中存活的对象复制到另一块区域,然后一次性清理掉这块没有用的内存。下次触发GC时将那块中存活的的又复制到这块,然后抹掉那块,循环往复。

3. 标记–整理算法

因为前面的复制算法当对象的存活率比较高时,这样一直复制过来,复制过去,没啥意义,且浪费时间。所以针对老年代提出了“标记整理”算法。

执行步骤:

  • 标记:对需要回收的进行标记

  • 整理:让存活的对象,向内存的一端移动,然后直接清理掉没有用的内存。

4. 分代收集算法

当前大多商用虚拟机都采用这种分代收集算法,这个算法并没有新的内容,只是根据对象的存活的时间的长短,将内存分为了新生代和老年代,这样就可以针对不同的区域,采取对应的算法。如:

  • 新生代,每次都有大量对象死亡,有老年代作为内存担保,采取复制算法。

  • 老年代,对象存活时间长,采用标记整理,或者标记清理算法都可。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式