Как 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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