模块  java.base
软件包  java.lang.ref

Class PhantomReference<T>


  • public class PhantomReference<T>
    extends Reference<T>
    幻像引用对象,在收集器之后排队,确定它们的对象可以被回收。 幻影参考通常用于安排事后清理操作。

    假设垃圾收集器在某个时间点确定对象是phantom reachable 那时它将原子地清除对该对象的所有幻像引用以及对该对象可从其访问的任何其他可进入幻像的对象的所有幻像引用。 在同一时间或稍后,它将使用参考队列注册的新清除的幻像引用入队。

    为了确保可回收对象保持如此,可能无法检索幻像引用的引用:幻像引用的get方法始终返回null

    从以下版本开始:
    1.2
    • 构造方法详细信息

      • PhantomReference

        public PhantomReference​(T referent,
                                ReferenceQueue<? super T> q)
        创建一个新的幻像引用,该引用引用给定对象并在给定队列中注册。

        可以使用null队列创建幻像引用,但是这样的引用完全没用:它的get方法将始终返回null并且由于它没有队列,因此它永远不会排队。

        参数
        referent - 新幻影引用将引用的对象
        q - 要注册引用的队列,如果不需要注册, null
    • 方法详细信息

      • get

        public T get()
        返回此引用对象的引用对象。 由于幻像引用的引用始终不可访问,因此此方法始终返回null
        重写:
        get在类 Reference<T>
        结果
        null