Spec-Zone.ru › OpenJDK 27

Класс WeakReference<T>

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

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

Начиная с:
1.2

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

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

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

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

clear, clone, enqueue, get, isEnqueued, reachabilityFence, refersTo
Модификатор и тип Метод Описание
void clear()
Очищает этот объект ссылки.
protected Object clone()
Выбрасывает CloneNotSupportedException.
boolean enqueue()
Очищает этот объект ссылки, а затем пытается добавить его в очередь, в которой он зарегистрирован, если такая очередь есть.
T get()
Возвращает объект-референт этого объекта ссылки.
boolean isEnqueued()
Устарело.
Изначально этот метод был предназначен для проверки того, был ли объект ссылки очищен и помещён в очередь, однако эта проверка так и не была реализована.
static void reachabilityFence(Object ref)
Гарантирует, что заданный объект остаётся сильно достижимым.
final boolean refersTo(T obj)
Проверяет, является ли объект-референт этого объекта ссылки obj.

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

equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
boolean equals(Object obj)
Указывает, равен ли какой-либо другой объект этому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Финализация признана устаревшей и может быть удалена в одном из следующих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

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

WeakReference

public WeakReference(T referent)
Создаёт новую слабую ссылку на заданный объект. Новая ссылка не регистрируется ни в одной очереди.
Параметры:
referent — объект, на который будет ссылаться новая слабая ссылка

WeakReference

public WeakReference(T referent, ReferenceQueue<? super T> q)
Создаёт новую слабую ссылку на заданный объект и регистрирует её в заданной очереди.
Параметры:
referent — объект, на который будет ссылаться новая слабая ссылка
q — очередь, в которой необходимо зарегистрировать ссылку, или null, если регистрация не требуется

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, где представлены более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, 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.

Spec-Zone.ru

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