”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > Java 中的字符串文字是否会被垃圾收集?

Java 中的字符串文字是否会被垃圾收集?

发布于2024-11-08
浏览:769

 Are String Literals Ever Garbage Collected in Java?

字符串文字的垃圾收集

Q1:如果一个字符串在编译时被定义为文字(例如,String str = "java"),它会被垃圾收集吗?

通常不会。代码对象包含对文字 String 对象的引用,使它们保持可访问性。垃圾回收仅在代码对象变得不可访问时发生。

Q2:如果使用 intern 方法(例如 String str = new String("java").intern()),会不会是垃圾Collected?

返回的对象将与“java”字符串文字相同,它在类加载时被保留。因此,它不会被垃圾收集。但是,与字符串文字不同的驻留字符串在无法访问时可以被垃圾收集。

Q3:只有在卸载 String 类时文字才会被垃圾收集,这有意义吗?

不。 String类对于Java虚拟机来说是必不可少的,不太可能被卸载。另有说明的消息来源是不正确的。

最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3