字符串文字的垃圾收集
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