public class SoftReference<T> extends Reference<T>
假设垃圾收集器在某个时间点确定对象是softly reachable 。 那时候,它可能会选择原子地清除对该对象的所有软引用,以及对任何其他可轻松访问的对象的所有软引用,该对象可以通过一个强引用链来访问该对象。 在同一时间或稍后的时间,它将排入在引用队列中注册的新清除的软引用。
在虚拟机抛出OutOfMemoryError
之前,所有软引用对象可以保证被清除。 否则,在清除软引用的时间或者对一组对不同对象的引用将被清除的顺序没有约束。 但是,鼓励虚拟机实现偏离清除最近创建或最近使用的软参考。
此类的直接实例可用于实现简单的缓存; 此类或派生子类也可用于较大的数据结构以实现更复杂的高速缓存。 只要软参考的指示是强有力的,即实际使用中,软参考将不会被清除。 因此,复杂的缓存可以例如阻止其最近使用的条目被丢弃,通过保持对这些条目的强烈的指示,使剩余的条目由垃圾收集器判断丢弃。
Constructor and Description |
---|
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