Spec-Zone.ru › OpenJDK 8

Класс PhantomReference<T>

  • java.lang.Object
    • java.lang.ref.Reference<T>
      • java.lang.ref.PhantomReference<T>

public class PhantomReference<T>
extends Reference<T>

Объекты Phantom ссылки, которые добавляются в очередь после того, как сборщик мусора определит, что их референты могут быть удалены. Phantom ссылки чаще всего используются для планирования действий по очистке до смерти объекта более гибким способом, чем это возможно с механизмом окончательной обработки Java.

Если сборщик мусора определит в определенный момент времени, что референт phantom ссылки является phantom достижимым, то в этот момент или в некоторый более поздний момент он добавит ссылку в очередь.

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

В отличие от soft и weak ссылок, phantom ссылки не очищаются автоматически сборщиком мусора, так как они добавляются в очередь. Объект, который доступен через phantom ссылки, останется доступным до тех пор, пока все такие ссылки не будут удалены или сами не станут недоступными.

Since:
1.2

Конструкторы

Конструктор и описание
PhantomReference(T referent, ReferenceQueue<? super T> q)

Создает новую phantom ссылку, которая ссылается на данный объект и регистрируется в данной очереди.

Методы

Модификатор и тип Метод и описание
T get()

Возвращает референт этого объекта ссылки.

Методы, унаследованные от класса java.lang.ref.Reference

clear, enqueue, isEnqueued

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Конструкторы

PhantomReference

public PhantomReference(T referent,
                        ReferenceQueue<? super T> q)

Создает новую phantom ссылку, которая ссылается на данный объект и регистрируется в данной очереди.

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

Parameters:
referent - объект, на который будет ссылаться новая phantom ссылка
q - очередь, с которой должна быть зарегистрирована ссылка, или null если регистрация не требуется

Методы

get

public T get()

Возвращает референт этого объекта ссылки. Поскольку референт phantom ссылки всегда недоступен, этот метод всегда возвращает null.

Overrides:
get в классе Reference<T>
Returns:
null

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API