gpt4 book ai didi

java - GC特殊处理的字段 `referent`

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:21:39 25 4
gpt4 key购买 nike

我正在查看 java.lang.ref.Reference 并在 JDK 1.8_131 中发现了一个有趣的(至少对我而言)行:

私有(private) T 指代对象;/* GC 特殊处理 */

这是什么意思?

GC是如何特殊对待的?

具有此名称的任何变量都将以相同的方式处理,这是事实吗?

我在 Java 规范中搜索了 referent,但一无所获。

谢谢。

最佳答案

此评论只是说明,可以从 documentation of the package 中得出什么和个别类(class)。特殊处理仅适用于此特定 JRE 中的 java.lang.ref.Reference.referent 字段,作为实现细节。通常,如果您想了解语义,您应该先查看文档,然后(如果有的话)查看源代码。

由于这是一个实现细节,您不会在规范中找到它。规范只告诉你 SoftReference 的语义, WeakReference , 和 PhantomReference .对于 Java 应用程序开发人员来说,这个字段的存在是无关紧要的,因为他们只会通过创建这三个类的实例来间接使用它,其文档指定了语义。

对于JVM实现来说,仅仅知道特殊的referent字段是不够的,因为它被所有这些引用类继承,实际处理取决于引用实例的实际类型垃圾收集器正在查看。此行为已被硬编码到 JVM 中,以与类库的此特定实现一起使用。

关于java - GC特殊处理的字段 `referent`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44696261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com