public class PhantomReference
extends Reference<T>
java.lang.Object | ||
↳ | java.lang.ref.Reference<T> | |
↳ | java.lang.ref.PhantomReference<T> |
幻象参考对象,它们在收集器之后被排队,并确定它们的对象可能被回收。 幻影引用最常用于以比Java最终化机制更灵活的方式安排验尸前清理操作。
如果垃圾收集器在特定的时间点确定幻影参考的参考是 phantom reachable ,那么在那个时候或稍后时间,它将排队参考。
为了确保可回收对象保持如此状态,可能不会检索到幻像参考的参考物:幻像参考的 get
方法始终返回 null
。
与软引用和弱引用不同,当垃圾收集器入队时,幻影引用不会自动清除。 通过幻影引用可访问的对象将保持如此状态,直到清除所有这些引用或者自己无法访问。
Public constructors |
|
---|---|
PhantomReference(T referent, ReferenceQueue<? super T> q) 创建一个引用给定对象的新幻影引用,并在给定队列中注册。 |
Public methods |
|
---|---|
T |
get() 返回此引用对象的参照物。 |
Inherited methods |
|
---|---|
From class java.lang.ref.Reference
|
|
From class java.lang.Object
|
PhantomReference (T referent, ReferenceQueue<? super T> q)
创建一个引用给定对象的新幻影引用,并在给定队列中注册。
可以使用 null队列创建幻像引用,但是这样的引用完全没有用处:它的 get方法将始终返回null,并且由于它没有队列,因此永远不会入队。
Parameters | |
---|---|
referent |
T : the object the new phantom reference will refer to |
q |
ReferenceQueue : the queue with which the reference is to be registered, or null if registration is not required |