Module  java.base
软件包  java.lang.ref

Class PhantomReference<T>



  • public class PhantomReference<T>
    extends Reference<T>
    在收集者确定其指示物可能被回收之后排入队列的Phantom参考对象。 幽灵引用通常用于安排事后清除操作。

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

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

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

      • PhantomReference

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

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

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

      • get

        public T get​()
        返回此引用对象的指示。 因为幻影引用的引用总是无法访问的,所以该方法总是返回null
        重写:
        getReference<T>
        结果
        null