从Java
9开始,
PhantomReference(PR)被自动清除。您会看到Javadoc更改是该更改的结果。
在Java
9之前,即使PR引用的对象
get()将返回,也保持活动状态
null。因此,在PR本身失效之前,尽管您无法获得对PR的引用,但该PR仍在技术上还活着。这种行为的好处不是很清楚。无论如何,公关处理将是“事前清理”。
在Java 9之后,就在入队前清除了PR(就像其他类型的弱引用/软引用一样),在PR被应用程序代码处理之前,引用对象本身就完全死了,这将是“事后清除”。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)