Класс PhantomReference<T>
- java.lang.Object
-
- java.lang.ref.Reference<T>
-
- java.lang.ref.PhantomReference<T>
public class PhantomReference<T> extends Reference<T>
Объекты-ссылки «призрачного» типа, которые добавляются в очередь после того, как сборщик мусора определил, что их объекты-ссылочные могут быть удалены. Ссылки «призрачного» типа чаще всего используются для планирования действий по очистке после смерти объекта.
Предположим, сборщик мусора в определенный момент времени определил, что объект является призрачно достижимым. В этот момент он атомарно очистит все «призрачные» ссылки на этот объект и все «призрачные» ссылки на любые другие призрачно достижимые объекты, из которых этот объект достижим. Одновременно или впоследствии он добавит в очередь эти только что очищенные ссылки «призрачного» типа, зарегистрированные в очередях ссылок.
Чтобы гарантировать, что удаляемый объект остается таким, извлечь ссылку на объект «призрачной» ссылки нельзя: метод get ссылки «призрачного» типа всегда возвращает null.
- Since:
- 1.2
Конструкторы
| Конструктор | Описание |
|---|---|
PhantomReference(T referent,
ReferenceQueue<? super T> q) | Создает новую «призрачную» ссылку, которая ссылается на заданный объект и зарегистрирована в заданной очереди. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
T | get() | Возвращает ссылку на объект-ссылочный. |
Методы, объявленные в классе java.lang.ref.Reference
clear, clone, enqueue, isEnqueued, reachabilityFence Методы, объявленные в классе java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Подробное описание конструкторов
PhantomReference
public PhantomReference(T referent,
ReferenceQueue<? super T> q) Создает новую «призрачную» ссылку, которая ссылается на заданный объект и зарегистрирована в заданной очереди.
Возможна ситуация, когда «призрачная» ссылка создается с null очередью, но такая ссылка совершенно бесполезна: ее метод get всегда вернет null, и поскольку у неё нет очереди, она никогда не будет добавлена в очередь.
- Параметры:
-
referent- объект, на который будет указывать новая «призрачная» ссылка -
q- очередь, в которой должна быть зарегистрирована ссылка, илиnull, если регистрация не требуется
Подробное описание методов
get
public T get()
Возвращает ссылку на объект-ссылочный. Поскольку объект-ссылочный «призрачной» ссылки всегда недоступен, этот метод всегда возвращает 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/ref/PhantomReference.html