Java虚拟机深入学习之三: Java虚拟机的垃圾收集算法

ゝ一纸荒年。 2022-03-30 14:14 364阅读 0赞

一 标记-清除算法(Mark-Sweep)

首先标记出所有需要回收的对象,标记完成后统一回收。

主要缺点: 1. 标记和清除效率都很低 2. 产生大量不连续的内存碎片,导致后面分配大内存空间失败

二 复制算法

将可用内存划分为大小相等的两块, 每次只使用其中一块。 当这块用完后,就将还存活对象复制到另外一块上面,再把已经使用的内存空间一次清理掉。

主要缺点: 代价太高,至少一半的内存不能使用。

三 标记-整理算法

标记过程和标记-清除算法一致,但是后续步骤是让所有存活的对象都向一端移动,然后清理掉边界以外的内存。

四 分代收集算法

当前商业虚拟机都采用此算法,分为不同对象代,去进行不同管理。

发表评论

表情:
评论列表 (有 0 条评论,364人围观)

还没有评论,来说两句吧...

相关阅读

    相关 java虚拟03-垃圾收集算法

    1.垃圾收集算法介绍     垃圾收集算法有很多,并且各个虚拟实现的方式也有所不同,并且其中大量的设计程序细节,所以这里只讨论算法的基本思路。     常见的垃圾收集算