Spec-Zone.ru › OpenJDK 21

Класс 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()
Возвращает обозначаемый объект этой ссылки.

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

clear, clone, enqueue, isEnqueued, reachabilityFence, refersTo

Методы, объявленные в классе java.lang.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)

© 1993, 2023, 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/21/docs/api/java.base/java/lang/ref/PhantomReference.html

Spec-Zone.ru

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