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

引用计数法:

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

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

可达性分析:

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

相关推荐
Slaughter信仰14 小时前
深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)第二章知识点问答(21题)
java·开发语言·jvm
whitepure1 天前
万字详解JVM
java·jvm·后端
猿究院--王升3 天前
jvm三色标记
java·jvm·算法
静若繁花_jingjing3 天前
JVM常量池
java·开发语言·jvm
猿究院-赵晨鹤3 天前
JVM基础知识总结
java·jvm
代码输入中...3 天前
JVM常见面试题及答案
java·jvm·java面试·java面试题·jvm面试题
猿究院--冯磊3 天前
JVM垃圾收集器
java·jvm·算法
倒悬于世3 天前
JVM-类加载详情
java·开发语言·jvm
码熔burning3 天前
JVM 面试精选 20 题(续)
jvm·面试·职场和发展