Spec-Zone.ru › OpenJDK 25

Класс PhantomReference<T>

java.lang.Object
java.lang.ref.Reference<T>
java.lang.ref.PhantomReference<T>
Параметры типа:
T — тип объекта, на который ссылаются
public non-sealed class PhantomReference<T> extends Reference<T>
Объекты-фантомные ссылки, которые помещаются в очередь после того, как сборщик мусора определяет, что объекты, на которые они ссылаются, могут быть освобождены. Фантомные ссылки чаще всего используются для планирования действий по очистке после освобождения объекта.

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

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

Начиная с версии:
1.2

Краткое описание конструкторов

Конструктор Описание
PhantomReference(T referent, ReferenceQueue<? super T> q)
Создает новую фантомную ссылку на заданный объект и регистрирует ее в заданной очереди.

Краткое описание методов

Модификатор и тип Метод Описание
T get()
Возвращает объект, на который ссылается этот объект-ссылка.

Методы, объявленные в классе Reference

clear, clone, enqueue, isEnqueued, reachabilityFence, refersTo

Методы, объявленные в классе Object

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

Подробное описание конструкторов

PhantomReference

public PhantomReference(T referent, ReferenceQueue<? super T> q)
Создает новую фантомную ссылку на заданный объект и регистрирует ее в заданной очереди.

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

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

Подробное описание методов

get

public T get()
Возвращает объект, на который ссылается этот объект-ссылка. Поскольку объект, на который ссылается фантомная ссылка, всегда недоступен, этот метод всегда возвращает null.
Переопределяет:
get в классе Reference<T>
Возвращает:
null
См. также:
  • Reference.refersTo(T)

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков с обзором концепций, определениями терминов, обходными решениями и примерами работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/ref/PhantomReference.html

Spec-Zone.ru

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