Spec-Zone.ru › OpenJDK 17

Класс PhantomReference<T>

java.lang.Object
java.lang.ref.Reference<T>
java.lang.ref.PhantomReference<T>
public class PhantomReference<T> extends Reference<T>
Объекты ссылок типа Phantom, которые добавляются в очередь после того, как сборщик мусора определит, что их ссылки-объекты могут быть удалены. Ссылки Phantom чаще всего используются для планирования действий по очистке после смерти объекта.

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

Для того, чтобы гарантировать, что удаляемый объект остается таким, ссылка-фантом не может быть использована для получения объекта-референта: Метод 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, 2021, 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/17/docs/api/java.base/java/lang/ref/PhantomReference.html

Spec-Zone.ru

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