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

引用计数法:

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

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

可达性分析:

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

相关推荐
AI人工智能+电脑小能手1 天前
【大白话说Java面试题 第65题】【JVM篇】第25题:谈谈对 OOM 的认识
java·开发语言·jvm
小小编程路1 天前
C++ 多线程与并发
java·jvm·c++
图像僧1 天前
vs2019中的属性页使用说明
java·开发语言·jvm
m0_617493941 天前
PySide6 数据库操作深度实测:从 SQLite 连接到增删改查避坑指南
jvm·数据库·sqlite
夜白宋1 天前
【JVM深入】一、基本内容
jvm
vKd0Ff21L1 天前
如何在Dev-C++中设置TDM-GCC为默认编译器第九十一篇
java·jvm·c++
Dicky-_-zhang1 天前
Elasticsearch聚合查询优化实战
java·jvm
AI人工智能+电脑小能手2 天前
【大白话说Java面试题 第64题】【JVM篇】第24题:强引用、软引用、弱引用、虚引用分别是什么?
java·开发语言·jvm·面试
一生了无挂2 天前
深入解析JVM、JRE与JDK:Java技术体系的核心基石
java·开发语言·jvm