Класс SoftReference<T>
- Параметры типа:
T— тип объекта, на который ссылаются
public non-sealed class SoftReference<T> extends Reference<T>
Предположим, что в некоторый момент времени сборщик мусора определяет, что объект достижим по мягкой ссылке. В этот момент он может атомарно очистить все мягкие ссылки на этот объект, а также все мягкие ссылки на любые другие объекты, достижимые по мягкой ссылке, из которых этот объект достижим по цепочке сильных ссылок. В то же время или позднее он поместит в очередь вновь очищенные мягкие ссылки, зарегистрированные в очередях ссылок.
Гарантируется, что все мягкие ссылки на объекты, достижимые по мягким ссылкам, будут очищены до того, как виртуальная машина выбросит исключение OutOfMemoryError. В остальном не установлено ограничений на время очистки мягкой ссылки или на порядок очистки набора таких ссылок на разные объекты. Однако разработчикам виртуальных машин рекомендуется не очищать недавно созданные или недавно использованные мягкие ссылки.
Непосредственные экземпляры этого класса можно использовать для реализации простых кэшей; этот класс или производные подклассы также можно использовать в более крупных структурах данных для реализации более сложных кэшей. Пока объект, на который указывает мягкая ссылка, сильно достижим, то есть фактически используется, мягкая ссылка не будет очищена. Таким образом, сложный кэш может, например, предотвращать удаление наиболее недавно использованных записей, сохраняя на них сильные ссылки, а удаление остальных записей оставляя на усмотрение сборщика мусора.
- Начиная с версии:
- 1.2
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
SoftReference |
Создает новую мягкую ссылку на заданный объект. |
SoftReference |
Создает новую мягкую ссылку на заданный объект и регистрирует ее в заданной очереди. |
Краткое описание методов
Методы, объявленные в классе 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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/ref/SoftReference.html