垃圾回收算法

目录

标记-清除算法

标记阶段

清除阶段

复制算法

标记-整理算法

标记阶段

整理阶段


标记-清除算法

分为标记阶段和清除阶段

标记阶段

遍历所有的 GCRoots 标记所有存活对象

清除阶段

清除所有未被标记的对象,清除后内存不连续,产生内存碎片,需要维护空闲列表,在分配大对象或者大数组对象时,可能没有连续的内存空间进行存放

复制算法

将内存分为两块,同一时刻只使用其中的一块内存,垃圾收集时,将存活对象复制到另一块区域,然后将垃圾对象统一清理。会浪费一部分内存,适用于对象存活率较低的场景

标记-整理算法

分为标记阶段和整理阶段

标记阶段

同样的,遍历所有 GCRoots 标记所有存活对象

整理阶段

把存活对象移动到内存的一端,然后对存活对象边界之外的内存进行统一回收。适用于垃圾收集次数不频繁,对象存活率较高的场景

相关推荐
J-Tony1114 小时前
【JVM】垃圾回收器
jvm
思麟呀15 小时前
C++11并发编程:条件变量
java·linux·jvm·c++·windows
未若君雅裁15 小时前
JVM 是什么:组成、运行流程与整体架构
jvm·架构
light blue bird16 小时前
3C 数码电子BOM 协同工作台组件
java·开发语言·jvm·windows·.net·桌面端
wuminyu1 天前
Java锁机制之轻量级锁判断与尝试逻辑源码剖析
java·linux·c语言·jvm·c++
DO your like1 天前
CMS场景YGC失败导致FULL GC的总结
jvm
墨痕无声2 天前
JVM(六)
jvm
右耳朵猫AI2 天前
Java/JVM周刊2026W21 | Java 26发布、JDK 27抢先体验、Spring Boot 4.1预告、GlassFish 8.0.2发布
java·jvm·spring boot
小马爱打代码2 天前
系统设计:JVM Full GC 预测与自动规避系统设计
jvm
磊 子2 天前
C++function与bind绑定器讲解
java·jvm·c++