java.lang.Object java.lang.ref.Reference<T> java.lang.ref.PhantomReference<T>
public class PhantomReference<T>
虚引用对象,在回收器确定其指示对象可另外回收之后,被加入队列。虚引用最常见的用法是以某种可能比使用 Java 终结机制更灵活的方式来指派 pre-mortem 清除动作。
如果垃圾回收器确定在某一特定时间点上虚引用的指示对象是虚可到达对象,那么在那时或者在以后的某一时间,它会将该引用加入队列。
为了确保可回收的对象仍然保持原状,虚引用的指示对象不能被获取:虚引用的 get
方法总是返回 null
。
与软引用和弱引用不同,虚引用在加入队列时并没有通过垃圾回收器自动清除。通过虚引用可到达的对象将仍然保持原状,直到所有这类引用都被清除,或者它们都变得不可到达。
构造方法摘要 | |
---|---|
PhantomReference(T referent, ReferenceQueue<? super T> q) 创建一个引用给定对象的新的虚引用,并向给定队列注册它。 |
方法摘要 | |
---|---|
T |
get() 返回此引用对象的指示对象。 |
从类 java.lang.ref.Reference 继承的方法 |
---|
clear, enqueue, isEnqueued |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
public PhantomReference(T referent, ReferenceQueue<? super T> q)
可能用一个 null 队列创建虚引用,但这样的引用是完全无用的:其 get 方法将总是返回 null,同时,因为它没有队列,所以将永远无法把它加入队列中。
referent
- 新的虚引用将引用的对象
q
- 将向其注册引用的队列,如果不需要注册,则返回
null
方法详细信息 |
---|
public T get()