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