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