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