Класс 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.
© 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.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/lang/ref/SoftReference.html