【JVM】如何判断对象是否可以被回收

引用计数法:

在对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加一;当引用失效时,计数器值就减一;任何时刻计数器为零的对象就是不可能再被使用的。

优点:实现简单,判定效率高;缺点:无法解决对象相互循环引用的问题,对象A中引用了对象B,对象B中引用对象A。

可达性分析:

通过一系列称为"GC Roots"的根对象作为起始节点集,从这些节点开始,根据引用关系向下搜索,搜索过程所走过的路径称为"引用链"(Reference Chain),如果某个对象到GC Roots间没有任何引用链相连,或者用图论的话来说就是从GC Roots到这个对象不可达时,则证明此对象是不可能再被使用的。

相关推荐
小张成长计划..15 小时前
【Linux】25:线程概念和控制
java·linux·jvm
用户094248568031 天前
第38章:从零构建JVM稳定性平台最小闭环
java·jvm
Java成神之路-1 天前
深入理解 G1 Mixed GC:触发条件、完整流程与高频误区
jvm·g1垃圾回收算法
认真的小羽❅1 天前
ThreadLocal 在虚拟线程间要小心
java·开发语言·jvm
今天的砖头有点烫手啊1 天前
Java 8 Stream 原理拆解:惰性求值与并行流陷阱
java·jvm
用户094248568032 天前
第37章:JVM极端场景调优与生产故障复盘方法论
java·jvm
南极企鹅2 天前
生产环境gc文件分析
java·jvm·算法
欣栀♡2 天前
JVM 频繁 Full GC 先看日志括号里的 cause,jstat 的 FGC 在 JDK 8 上会骗人
java·jvm
czt_java2 天前
JVM 核心基础|运行时数据区、类加载机制、GC 分代回收
jvm
Web极客码2 天前
Python Ollama 本地 Agent 入门与订单查询实践
开发语言·jvm·python