JVM垃圾收集算法(标记-清除复制标记-整理)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVM垃圾收集算法(标记-清除复制标记-整理)相关的知识,希望对你有一定的参考价值。

 【JVM垃圾收集算法】

1)标记-清除算法:

  标记阶段:先通过根节点,标记所有从根节点开始的对象,未被标记的为垃圾对象(错了吧?)

  清除阶段:清除所有未被标记的对象

2)复制算法:

  将原有的内存空间分为两块,每次只使用一块,在垃圾回收时,将正在使用的内存中的存活对象复制到未被使用的内存块中,然后清除正在使用的内存块中的所有对象。

3)标记-整理算法:

  标记阶段:先通过根节点,标记所有从根节点开始的可达对象,未被标记的为垃圾对象

  整理阶段:将所有的存活对象压缩到内存的一段,之后清理边界所有的空间

 

三种算法的比较:

  效率: 复制 > 标记整理 > 标记清除  (此处的效率只是简单的对比时间复杂度,实际情况不一定如此)

  内存利用率: 标记整理 > 标记清除 > 复制

  内存整齐度: 复制 = 标记整理 > 标记清除

 

以上是关于JVM垃圾收集算法(标记-清除复制标记-整理)的主要内容,如果未能解决你的问题,请参考以下文章

JVM-垃圾收集的过程

JVM——垃圾收集算法

JVM垃圾收集器的种类

JVM学习记录-垃圾回收算法

Jvm垃圾收集算法

JVM垃圾回收