Класс SoftReference<T>
- Параметры типа:
-
T- тип ссылаемого объекта
public non-sealed class SoftReference<T> extends Reference<T>
Предположим, что сборщик мусора в какой-то момент определяет, что объект является мягко достижимым. В этот момент он может выбрать атомарно очистить все мягкие ссылки на этот объект и все мягкие ссылки на любые другие мягко достижимые объекты, от которых этот объект достижим через цепочку сильных ссылок. Одновременно или в более позднее время он будет помещать в очередь эти недавно очищенные мягкие ссылки, которые зарегистрированы в очередях ссылок.
Все мягкие ссылки на мягко достижимые объекты гарантированно будут очищены до того, как виртуальная машина выбросит исключение OutOfMemoryError. В противном случае никакие ограничения не накладываются на время очистки мягкой ссылки или порядок очистки набора таких ссылок на разные объекты. Однако реализации виртуальных машин рекомендуют избегать очистки недавно созданных или недавно используемых мягких ссылок.
Прямые экземпляры этого класса могут использоваться для реализации простых кэшей; этот класс или производные подклассы также могут использоваться в более крупных структурах данных для реализации более сложных кэшей. Пока ссылаемый объект мягкой ссылки доступен, то есть фактически используется, мягкая ссылка не будет очищена. Таким образом, сложный кэш, например, может предотвратить удаление своих наиболее недавно использованных элементов, сохраняя сильные ссылки на эти элементы, оставляя остальные элементы для удаления по усмотрению сборщика мусора.
- С момента:
- 1.2
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
SoftReference |
Создаёт новую мягкую ссылку, которая ссылается на заданный объект. |
SoftReference |
Создаёт новую мягкую ссылку, которая ссылается на заданный объект и зарегистрирована в заданной очереди. |
Краткое описание методов
Методы, объявленные в классе java.lang.ref.Reference
clear, clone, enqueue, isEnqueued, reachabilityFence, refersTo
Подробное описание конструкторов
SoftReference
public SoftReference(T referent)
- Параметры:
-
referent- объект, на который будет ссылаться новая мягкая ссылка
SoftReference
public SoftReference(T referent, ReferenceQueue<? super T> q)
- Параметры:
-
referent- объект, на который будет ссылаться новая мягкая ссылка -
q- очередь, с которой должна быть зарегистрирована ссылка, илиnullесли регистрация не требуется
Подробное описание методов
get
public T get()
null. - Переопределяет:
-
getв классеReference<T> - Возвращает:
- Объект, на который ссылается эта ссылка, или
nullесли эта ссылка была очищена - См. также:
© 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/SoftReference.html