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

引用计数法:

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

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

可达性分析:

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

相关推荐
小白的一叶扁舟13 小时前
深入剖析 JVM 内存模型
java·jvm·spring boot·架构
小池先生15 小时前
jvm_threads_live_threads 和 jvm_threads_states_threads 这两个指标之间存在一定的关系,但它们关注的维度不同
jvm
{⌐■_■}20 小时前
【GORM】事务,嵌套事务,保存点事务的使用,简单电商平台go案例
开发语言·jvm·后端·mysql·golang
Chancezhou1 天前
【JVM】总结篇之GC性能优化案例
jvm·性能优化
Rverdoser1 天前
多级缓存 JVM进程缓存
jvm·缓存
蚂蚁质量2 天前
什么是 Java 虚拟机(JVM)?
java·开发语言·jvm
日拱一卒无有尽, 功不唐捐终入海2 天前
Mybatis乐观锁使用
java·开发语言·jvm·mybatis
做一个有信仰de人2 天前
【面试题】JVM部分[2025/1/13 ~ 2025/1/19]
java·jvm·面试
林汐的学习笔记2 天前
性能调优篇 四、JVM运行时参数
jvm
robin_suli2 天前
Java虚拟机相关八股一>jvm分区,类加载(双亲委派模型),GC
java·jvm·八股文