系列六、GC垃圾回收【四大垃圾算法-标记清除算法】

一、概述

标记清除算法分为两个阶段,即:标记和清除两个阶段,先标记出要回收的对象,然后统一回收这些对象。形如:

老年代一般是由标记清除或者标记清除 + 标记压缩的混合实现。

二、原理

用通俗的话解释一下标记清除算法,就是当程序运行期间,如果可以使用的内存被耗尽的时候,GC线程就会被触发并将程序暂停,随后将要被回收的对象标记一遍,最后统一回收这些对象,最终统一回收这些对象,完成标记清理工作后,接下来便让应用程序恢复运行。

主要进行两项工作,第一项是标记,第二项是清除:

标记:从引用根节点开始标记遍历所有的GC Roots,先标记出需要回收的对象;

清除:遍历整个堆,把标记的对象清除。

缺点:此算法需要暂停整个应用,会产生内存碎片

相关推荐
淡海水1 天前
【原理】Unity GC 对比 C# GC
unity·c#·gc·垃圾回收
葵野寺10 天前
【JVM】深入解析Java虚拟机
java·linux·jvm·gc·垃圾回收
虎鲸不是鱼15 天前
记一次借助Eclipse MAT排查OOM
java·jvm·ide·eclipse·gc
Joker—H21 天前
【Java】JVM虚拟机(java内存模型、GC垃圾回收)
java·开发语言·jvm·经验分享·个人开发·gc
鼠鼠我捏,要死了捏25 天前
深入解析JVM垃圾回收调优:性能优化实践指南
java·jvm·gc
朱皮皮呀1 个月前
JVM的内存区域划分,类加载器和GC
jvm·gc·类加载器·垃圾回收机制·内存区域划分
Lucas6492 个月前
垃圾收集器
java·jvm·gc
thinking-fish2 个月前
详解JVM
java·jvm·gc
一名小码农2 个月前
线上GC count突增问题排查及修复记录
java·gc·调优·线上问题·死循环·线上
旋风菠萝3 个月前
深入理解Java中的Minor GC、Major GC和Full GC
java·jvm·gc