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

时间:2011-03-17 02:17:11

标签: java reference

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

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

2 个答案:

答案 0 :(得分:12)

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

请参阅:

希望这有帮助。

答案 1 :(得分:5)

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

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

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