为什么自Java 9 PhantomReference java doc声明它专用于POST验尸清理 *** 作,尽管之前它是PRE验尸

为什么自Java 9 PhantomReference java doc声明它专用于POST验尸清理 *** 作,尽管之前它是PRE验尸,第1张

为什么自Java 9 PhantomReference java doc声明它专用于POST验尸清理 *** 作,尽管之前它是PRE验尸

从Java
9开始,

PhantomReference
(PR)被自动清除。您会看到Javadoc更改是该更改的结果。

在Java
9之前,即使PR引用的对象

get()
将返回,也保持活动状态
null
。因此,在PR本身失效之前,尽管您无法获得对PR的引用,但该PR仍在技术上还活着。这种行为的好处不是很清楚。无论如何,公关处理将是“事前清理”。

在Java 9之后,就在入队前清除了PR(就像其他类型的弱引用/软引用一样),在PR被应用程序代码处理之前,引用对象本身就完全死了,这将是“事后清除”。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5501558.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存