Spec-Zone .ru
спецификации, руководства, описания, API
|
public class SoftReference<T> extends Reference<T>
Предположите, что сборщик "мусора" определяет в определенный момент вовремя, что объект мягко достижим. Тогда это может хотеть очищать атомарно все мягкие ссылки на тот объект и все мягкие ссылки на любые другие мягко достижимые объекты, от которых тот объект достижим через цепочку ссылок strong. Одновременно или в некоторое более позднее время это будет ставить в очередь те недавно очищенные мягкие ссылки, которые регистрируются в ссылочных очередях.
Все мягкие ссылки на мягко достижимые объекты, как гарантируют, будут очищены прежде, чем виртуальная машина бросит OutOfMemoryError
. Иначе никакие ограничения не помещаются во время, в которое мягкая ссылка будет очищена или порядок, в котором будет очищен ряд таких ссылок на различные объекты. Реализации виртуальной машины, однако, поощряются сместить против очистки недавно создаваемых или недавно используемых мягких ссылок.
Прямые экземпляры этого class могут использоваться, чтобы реализовать простые кэши; этот class или полученные подклассы могут также использоваться в больших структурах данных, чтобы реализовать более сложные кэши. Пока референт мягкой ссылки строго достижим, то есть, находится фактически в использовании, мягкая ссылка не будет очищена. Таким образом сложный кэш может, например, предотвратить свои последний раз используемые записи от того, чтобы быть отброшенным, сохраняя референты strong к тем записям, оставляя остающиеся записи, которые будут отброшены на усмотрение сборщика "мусора".
Конструктор и Описание |
---|
SoftReference(T referent)
Создает новую мягкую ссылку, которая обращается к данному объекту.
|
SoftReference(T referent, ReferenceQueue<? super T> q)
Создает новую мягкую ссылку, которая обращается к данному объекту и регистрируется в данной очереди.
|
Модификатор и Тип | Метод и Описание |
---|---|
T |
get()
Возвраты этот ссылочный референт объекта.
|
clear, enqueue, isEnqueued
public SoftReference(T referent)
referent
- возразите, что новая мягкая ссылка обратится кpublic SoftReference(T referent, ReferenceQueue<? super T> q)
referent
- возразите, что новая мягкая ссылка обратится кq
- очередь, в которой ссылка должна быть зарегистрирована, или null, если регистрация не требуетсяpublic T get()
null
.
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92