Можно ли получить счетчик ссылок на объект? - PullRequest
34 голосов
/ 17 марта 2011

Я хотел бы знать, есть ли способ проверить, сколько ссылок имеет объект Java.Насколько я мог проверить, единственный способ сделать это - использовать JVMTI через интерфейс JNI.Существует ли чисто Java-решение (без использования нативных библиотек) для получения этой информации?

Мы разрабатываем учебный инструмент для анимации структуры данных (который будет использоваться со студентами при реализации определенных алгоритмов), поэтому он будет оченьбыло бы хорошо, если бы мы могли проверять наличие «освобожденных» объектов самым ненавязчивым способом (я стараюсь не заставлять пользователя этого инструмента вызывать такой метод, как ObjectReleased (objRef), чтобы обновить анимацию структуры данных дляудаление элемента или что-то похожее)

Ответы [ 2 ]

12 голосов
/ 04 августа 2011

Из вашего описания кажется, что вы меньше заботитесь о фактическом количестве ссылок, чем просто знаете, когда объект был собран.В этом случае вы можете использовать WeakReference или PhantomReference, чтобы определить, когда ссылочный объект готов к завершению.

См .:

Надеюсь, это поможет.

5 голосов
/ 17 марта 2011

Java не предлагает эту опцию изначально, насколько я знаю.

Вот несколько советов, как это сделать вручную:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...