首页 > 编程语言 > 详细

JVM 垃圾收集算法

时间:2021-05-01 16:47:19      阅读:25      评论:0      收藏:0      [点我收藏+]

JVM一共有四种垃圾收集算法:标记-清除算法,复制算法,标记-整理算法,分代垃圾收集算法

1、标记-清除算法

技术分享图片

分为两个阶段:标记和清除阶段。

这个算法?先标记出所有还存活的对象,回收掉所有没被标记的对象

优点是:实现简单

缺点就是:回收效率低,会产生大量的内存碎片,导致无法给大对象分配内存空间

 

2、复制算法

它将内存区域分为相等的两块,每次只使用其中的一块。

技术分享图片

当正在使用的这一块区域用完了,就将还存活的对象复制到另外那块区域中,然后集中对之前使用的那块进行清理。

缺点就是:只使用了一半的内存空间,空间利用率地低

 

3、标记-整理算法

技术分享图片

这个算法标记出所有存活的对象,然后将他们整理并移动到内存区域的一端。然后清理掉存活对象所占区域边界以外的区域

优点:不会产生碎片空间

缺点:需要移动大量对象,处理效率比较低

 

4、分代垃圾收集算法

现在的商业虚拟机一般都采用这种算法。

这个算法根据对象存活周期,将内存分为几块(新生代-老年代-永久代),不同的快采取不同收集算法。

新生代采用:复制算法

老年代采用:标记-清除算法 或者 标记-整理算法

JVM 垃圾收集算法

原文:https://www.cnblogs.com/gslgb/p/14724270.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!