gpt4 book ai didi

java - 单例对象是否有资格进行垃圾回收?类中的静态字段如何进行垃圾收集?

转载 作者:行者123 更新时间:2023-12-01 19:13:02 27 4
gpt4 key购买 nike

我正在搜索jvm和垃圾收集在java应用程序中如何工作,我想知道java单例对象是否符合java垃圾收集的条件,类中的静态字段如何被垃圾收集?
我还知道现在在 java8 和最新版本中,对象的元数据存储在元空间中,但真正包含此元数据的是什么。
谢谢。

最佳答案

只有当加载该静态变量所属类的类加载器也被垃圾收集时,静态变量才会被垃圾收集。

除了引导类加载器之外的所有类加载器都可以被垃圾收集,尽管这在大多数标准应用程序中很少发生,因为类加载器仅在以下情况下才会被垃圾收集:

  • 类加载器加载的任何类都没有可访问的实例
  • 没有由类加载器加载的可访问类(包括我们的静态变量所属的类)
  • 类加载器本身无法访问

请注意,这是简单的解释,如果您有兴趣,还有更多详细信息,好的起点是 Java 13 class unloading specification

关于java - 单例对象是否有资格进行垃圾回收?类中的静态字段如何进行垃圾收集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59452942/

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