gpt4 book ai didi

java - 字符串文字是否有资格进行垃圾回收。以这种方式?

转载 作者:太空宇宙 更新时间:2023-11-04 06:46:18 25 4
gpt4 key购买 nike

我在https://stackoverflow.com/a/23934422/2194456的帖子中看到过

 class Test {
String s = "1";
}
...
MyClassLoader cl = new MyClassLoader();
Object obj = cl.loadClass("Test").newInstance();
obj = null;
cl = null;
// now "1" is eligible for GC if no other class or object references it

这真的有效吗?

最佳答案

字符串文字被 GC 的唯一原因是引用它的所有类都被卸载。即使这样,特定的垃圾收集器也必须被设计为删除保留的字符串,但并非全部都是如此。

对于要卸载的类,必须使用用户类加载器来加载它,并且该加载器以及引用该类的所有对象和类都必须被释放/卸载。这种情况绝不会偶然发生,并且很难有意发生。

(上面的代码试图做到这一点,但是,正如我所说,很难故意做到这一点,所以我不能说它是否有效。)

(而且,正如其他地方提到的,GC 类的功能在该语言的历史上已经被打开和关闭了好几次,并且很可能是当前某些 JVM 上的启动选项。)

关于java - 字符串文字是否有资格进行垃圾回收。以这种方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23935958/

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