是否可以获取对象引用计数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否可以获取对象引用计数?相关的知识,希望对你有一定的参考价值。

我想知道是否有办法检查Java对象有多少引用。据我所知,唯一的方法就是通过JNI接口使用JVMTI。是否有纯Java(不使用本机库)解决方案来获取此信息?

我们正在开发一种用于数据结构动画的教育工具(与学生实现某些算法一起使用),所以如果我们能够以最非侵入性的方式检查“已发布”的对象,那将是非常好的(我试图避免强迫此工具的用户调用ObjectReleased(objRef)等方法来更新数据结构动画以删除元素或类似的东西

答案

根据您的描述,您似乎不太关心引用的实际数量,而只关心何时收集对象。如果是这种情况,您可以使用WeakReference或PhantomReference来确定引用的对象何时可以完成。

看到:

希望这可以帮助。

另一答案

据我所知,Java本身不提供此选项。

这里有一些关于如何手动完成的指导:

http://www.velocityreviews.com/forums/t363649-how-do-i-get-a-reference-count-of-a-object-in-java.html

以上是关于是否可以获取对象引用计数?的主要内容,如果未能解决你的问题,请参考以下文章

垃圾回收算法

垃圾回收算法

垃圾回收算法

判断一个对象是否可以被回收

Java 垃圾回收

深入理解Java虚拟机——判断对象是否存活