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

一、概述

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

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

二、原理

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

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

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

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

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

相关推荐
翔云1234561 天前
Go语言的垃圾回收(GC)机制的迭代和优化历史
java·jvm·golang·gc
蓝黑20201 天前
Java知识点小结3:内存回收
java·gc
PerfMan2 天前
基于eBPF的procstat软件追踪程序垃圾回收(GC)事件
linux·开发语言·gc·ebpf·垃圾回收·procstat
得食猫9 天前
JVM垃圾回收
java·jvm·gc
coffee_babe19 天前
【JVM】垃圾收集器与GC日志(一)
java·jvm·gc·openjdk·hotspot
coffee_babe25 天前
【JVM】垃圾回收算法(一)
java·jvm·算法·gc·openjdk·hotspot
_whitepure3 个月前
JVM中的垃圾回收器
jvm·gc·垃圾回收器
Benaso3 个月前
Golang三色标记法
golang·go·gc·三色标记法
青云交3 个月前
Java面试题--JVM大厂篇之掌握JVM性能优化:选择合适的垃圾回收器
jvm·gc·串行垃圾回收器·并行垃圾回收器·并发标记清除垃圾回收器·garbagefirst·选择合适的垃圾回收器
williamdsy4 个月前
【退役之重学Java】JVM 内存模型和 GC 简述
java·jvm·gc·内存模型