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

一、概述

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

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

二、原理

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

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

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

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

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

相关推荐
水中加点糖8 天前
JVM-GC(G1)实践—GC异常定位、参数调整、GC更换
jvm·gc·jdk17·zgc·g1·gc定位·gc调优
Gerald Kwok2 个月前
Golang GC 三色标记法
算法·golang·gc
Themberfue2 个月前
JVM ②-双亲委派模型 || 垃圾回收GC
java·jvm·gc·垃圾回收·类加载器·双亲委派模型·分代收集算法
fly spider2 个月前
JVM- 垃圾回收算法
java·jvm·算法·gc
Ciderw2 个月前
Go的垃圾回收(GC)机制
开发语言·c++·后端·面试·golang·gc
翔云1234563 个月前
raft: Failed to contact
golang·raft·gc
OceanSky64 个月前
Java11使用JVM同一日志框架启用日志记录
jvm·日志·gc·xlog
码农爱java4 个月前
JVM 性能调优 -- CMS 垃圾回收器 GC 日志分析【Full GC】
jvm·gc·jvm 调优·full gc·gc 日志分析·jvm 虚拟机调优
暴走的锅巴5 个月前
由C#委托回调想到的二三事
c#·gc·委托·垃圾回收·资源管理·资源释放·delegate
一丝晨光6 个月前
面向对象彻底性、权限访问、垃圾回收
java·c++·c#·objective-c·gc·权限·oop