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

引用计数法:

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

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

可达性分析:

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

相关推荐
qw9492 小时前
JVM:程序计数器、虚拟机栈、本地方法栈
jvm
Mr.每天进步一小步5 小时前
每天记录一道Java面试题---day39
java·jvm·面试
DreamBoat_Onism7 小时前
JVM 垃圾回收
java·jvm·后端
DreamBoat_Onism7 小时前
JVM 内存调优
java·jvm·后端
异常君8 小时前
深入 JVM:线程池源码剖析与性能调优全攻略
java·jvm·后端
zimoyin9 小时前
整活 kotlin + springboot3 + sqlite 配置一个 SQLiteCache
jvm·sqlite·kotlin
DreamBoat_Onism13 小时前
JVM 概述
java·jvm·后端
你不干有的是帕鲁干1 天前
jvm问题总结
java·jvm
꯭ 瞎꯭扯꯭蛋꯭1 天前
JVM 常用监控工具介绍和使用
jvm
qw9491 天前
JVM:JVM与Java体系结构
java·开发语言·jvm