首页 > 代码库 > JVM垃圾收集算法(标记-清除、复制、标记-整理)
JVM垃圾收集算法(标记-清除、复制、标记-整理)
【JVM垃圾收集算法】
1)标记-清除算法:
标记阶段:先通过根节点,标记所有从根节点开始的对象,未被标记的为垃圾对象(错了吧?)
清除阶段:清除所有未被标记的对象
2)复制算法:
将原有的内存空间分为两块,每次只使用一块,在垃圾回收时,将正在使用的内存中的存活对象复制到未被使用的内存块中,然后清除正在使用的内存块中的所有对象。
3)标记-整理算法:
标记阶段:先通过根节点,标记所有从根节点开始的可达对象,未被标记的为垃圾对象
整理阶段:将所有的存活对象压缩到内存的一段,之后清理边界所有的空间
三种算法的比较:
效率: 复制 > 标记整理 > 标记清除 (此处的效率只是简单的对比时间复杂度,实际情况不一定如此)
内存利用率: 标记整理 > 标记清除 > 复制
内存整齐度: 复制 = 标记整理 > 标记清除
JVM垃圾收集算法(标记-清除、复制、标记-整理)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。