垃圾回收算法

目录

标记-清除算法

标记阶段

清除阶段

复制算法

标记-整理算法

标记阶段

整理阶段


标记-清除算法

分为标记阶段和清除阶段

标记阶段

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

清除阶段

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

复制算法

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

标记-整理算法

分为标记阶段和整理阶段

标记阶段

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

整理阶段

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

相关推荐
小园子的小菜8 小时前
深入理解 JVM 垃圾回收:从对象判定、回收算法到经典收集器全解析
jvm·算法
孫治AllenSun10 小时前
【JVM】四大引用类型分析
java·开发语言·jvm
笨笨饿1 天前
101_详解USB协议
java·jvm·数据结构
雪的季节1 天前
Python 垃圾回收触发完整机制
java·jvm·算法
heimeiyingwang2 天前
【架构实战】JVM调优:GC选择与堆内存分配策略
jvm·架构
J-Tony112 天前
【JUC】关于锁的那点事
java·jvm·算法
斑鸠喳喳2 天前
类加载子系统
jvm
youtootech2 天前
HarmonyOS《柚兔学伴》项目实战08-关系型数据库入门——待办事项持久化
jvm·数据库·华为·harmonyos
weixin_727535622 天前
JVM 常见八股面试问答:深入底层原理
jvm·面试·职场和发展
Java技术实战2 天前
一文通解:数据结构之 栈
java·jvm·数据结构·