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

引用计数法:

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

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

可达性分析:

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

相关推荐
籍籍川草8 小时前
JVM指针压缩的那些事
java·开发语言·jvm
我命由我1234517 小时前
Spring Boot 项目问题:Web server failed to start. Port 5566 was already in use.
java·前端·jvm·spring boot·后端·spring·java-ee
_祝你今天愉快19 小时前
Java-JVM探析
android·java·jvm
旋风菠萝1 天前
JVM易混淆名称
java·jvm·数据库·spring boot·redis·面试
倒悬于世1 天前
ThreadLocal详解
java·开发语言·jvm
麦兜*1 天前
大模型时代,Transformer 架构中的核心注意力机制算法详解与优化实践
jvm·后端·深度学习·算法·spring·spring cloud·transformer
码出极致2 天前
G1 垃圾收集器深度解析:平衡吞吐量与延迟的 JVM 内存管理之道
jvm
码出极致2 天前
ZGC 深度解析:低延迟与大内存场景下的 JVM 垃圾回收实践
jvm
回家路上绕了弯2 天前
堆快照深度分析指南:从数据到根源的内存问题诊断
jvm
回家路上绕了弯2 天前
深度解析:频繁 Full GC 的诊断与根治方案
jvm·后端