一分钟带你了解:标记-清除算法
程序员文章站
2022-03-27 19:53:55
原理最基础的收集算法是“标记一清除”(Mark-Sweep) 算法,如它的名字- -样,算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收掉所有被标记的对象。之所以说它是最基础的收集算法,是因为后续的收集算法都是基于这种思路并对其缺点进行改进而得到的。缺点1、效率问题,标记和清除过程的效率都不高:2、空间问题,标记清除之后会产生大量不连续的内存碎片,空间碎片太多可能会导致,当程序在以后的运行过程中需要分配较大对象时无法找到足够的连续内存而不得不提前触发另一次垃圾收...
原理
最基础的收集算法是“标记一清除”(Mark-Sweep) 算法,如它的名字- -样,算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收掉所有被标记的对象。之所以说它是最基础的收集算法,是因为后续的收集算法都是基于这种思路并对其缺点进行改进而得到的。
缺点
1、效率问题,标记和清除过程的效率都不高:
2、空间问题,标记清除之后会产生大量不连续的内存碎片,空间碎片太多可能会导致,当程序在以后的运行过程中需要分配较大对象时无法找到足够的连续内存而不得不提前触发另一次垃圾收 集动作。
标记-清除算法的执行过程如下图:
--------------------------------------------分割线---------------------------------------------------------
以上知识均来源于该书籍,有钱的小伙伴可以去购买正版书籍支持一下。
提取码:123456
《深入理解Java虚拟机JVM高级特性与最佳实践(周志明)》
https://306t.com/file/28095605-451122608
本文地址:https://blog.csdn.net/weixin_42440768/article/details/107411767