Как PhantomReference без очереди влияет на собираемость референта?JAVA

Программисты JAVA общаются здесь
Anonymous
Как PhantomReference без очереди влияет на собираемость референта?

Сообщение Anonymous »

Java позволяет писать:

Код: Выделить всё

new PhantomReference(new Object(), null)
Будет ли в этом случае собираться новый Object()?
Насколько я понимаю, фантомные ссылки являются альтернативой методу Finalize(). После того, как ссылка появится в очереди, я могу выполнить некоторые дополнительные действия, а затем мне нужно запуститьclear().
Javadoc утверждает:

Можно создать фантомную ссылку с пустой очередью, но такая ссылка совершенно бесполезна: ее метод get всегда будет возвращать null и, поскольку у нее нет очереди, она никогда не будет поставлена в очередь.

Что значит, что она никогда не будет поставлена в очередь?
Насколько я понимаю, это означает, что после вызова Finalize ссылка не будет добавлена в очередь ссылок. Отсюда может следовать, что:
  • Память объекта будет очищена сразу
  • Память объекта не будет очищена вообще
Как правильно?

Подробнее здесь: https://stackoverflow.com/questions/413 ... of-its-ref

Вернуться в «JAVA»