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

Ser*_*gio 34 java reference

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

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

sco*_*awg 12

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

看到:

希望这可以帮助.


eLo*_*ato 5

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

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

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