本文主要是介绍深入理解Java虚拟机——标记-清除(Mark-Sweep)算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
- 一、标记-清除(Mark-Sweep)算法的概述
- 二、标记-清除(Mark-Sweep)算法的缺点
- 2.1、效率问题
- 2.2、空间问题
- 三、标记-清除(Mark-Sweep)算法执行过程
一、标记-清除(Mark-Sweep)算法的概述
- 标记-清除(Mark-Sweep)算法,如同它的名字一样,算法分为“标记”和“清除”两个阶段。
- 首先,标记出所有需要回收的对象,然后,在标记完成后统一回收所有被标记的对象。
二、标记-清除(Mark-Sweep)算法的缺点
2.1、效率问题
- 标记和清除两个过程的效率都不高。
2.2、空间问题
- 标记清除之后会产生大量不连续的内存碎片,空间碎片太多可能会导致以后在程序运行过程中需要分配较大对象时,无法找到足够的连续内存而不得不提前触发另一次垃圾收集动作。
三、标记-清除(Mark-Sweep)算法执行过程
这篇关于深入理解Java虚拟机——标记-清除(Mark-Sweep)算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!