String Pool是什么意思?以下声明之间有什么区别:
String s = "hello";
String s = new String("hello");
Run Code Online (Sandbox Code Playgroud)
JVM存储这两个字符串有什么区别吗?
在Java中,当一个对象没有实时引用时,它有资格进行垃圾回收.现在在字符串的情况下,情况并非如此,因为字符串将进入字符串池,JVM将使对象保持活动状态以便重用.这意味着一旦创建的字符串"永远不会"被垃圾收集?
我正在阅读垃圾收集,当我搜索字符串文字垃圾收集时,我的搜索结果令人困惑.
我需要澄清以下几点:
如果在编译时将字符串定义为文字[例如:String str = "java"]那么它是否会被垃圾收集?
如果使用实习方法[例如:String str = new String("java").intern()]那么它会被垃圾收集吗?它也将与第1点中的字符串文字区别对待.
有些地方提到只有在String卸载类时才会对文字进行垃圾收集?它是否有意义,因为我认为String不会卸载课程.