返回介绍

java.lang.ref 类 PhantomReference<T>

发布于 2019-10-04 09:51:15 字数 2478 浏览 862 评论 0 收藏 0

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

构造方法摘要
PhantomReference(Treferent, ReferenceQueue<? super T>q)

创建一个引用给定对象的新的虚引用,并向给定队列注册它。

方法摘要
Tget()

返回此引用对象的指示对象。

从类 java.lang.ref.Reference 继承的方法
clear, enqueue, isEnqueued
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

构造方法详细信息

PhantomReference

public PhantomReference(Treferent,
                        ReferenceQueue<? super T>q)
创建一个引用给定对象的新的虚引用,并向给定队列注册它。

可能用一个 null 队列创建虚引用,但这样的引用是完全无用的:其 get 方法将总是返回 null,同时,因为它没有队列,所以将永远无法把它加入队列中。

参数:
referent - 新的虚引用将引用的对象
q - 将向其注册引用的队列,如果不需要注册,则返回 null

方法详细信息

get

public T get()
返回此引用对象的指示对象。因为虚引用的指示对象总是不可到达的,所以此方法总是返回 null
覆盖:
Reference<T> 中的 get
返回:
null

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文