Module java.base
Package java.lang.ref

Class PhantomReference<T>

java.lang.Object
java.lang.ref.Reference<T>
java.lang.ref.PhantomReference<T>
类型参数:
T - 引用对象的类型

public non-sealed class PhantomReference<T> extends Reference<T>
幽灵引用对象,在收集器确定其引用对象可能被回收后入队。幽灵引用通常用于安排事后清理操作。

假设垃圾收集器在某个时间点确定对象是幽灵可达。此时,它将原子性地清除所有对该对象的幽灵引用,以及从该对象可达的任何其他幽灵可达对象的幽灵引用。同时或稍后,它将入队那些新清除的已注册到引用队列的幽灵引用。

为了确保可回收对象保持不可访问,幽灵引用的引用对象不可被检索:幽灵引用的get方法始终返回null。可以使用refersTo方法来测试某个对象是否是幽灵引用的引用对象。

自 JDK 版本:
1.2
  • Constructor Details

    • PhantomReference

      public PhantomReference(T referent, ReferenceQueue<? super T> q)
      创建一个新的幽灵引用,引用给定对象,并注册到给定队列。

      可以使用null队列创建幽灵引用。这样的引用永远不会被入队。

      参数:
      referent - 新幽灵引用将引用的对象
      q - 引用将注册到的队列,如果不需要注册,则为null
  • Method Details

    • get

      public T get()
      返回此引用对象的引用对象。因为幽灵引用的引用对象始终不可访问,此方法始终返回null
      覆盖:
      get 在类 Reference<T>
      返回:
      null
      参见: