String str1="JAVA";
String str2="JAVA";
String str3=new String("JAVA");
String str4=new String("JAVA").intern();
将创建 2 个对象。str1
并且str2
由于字符串字面量池的概念而引用相同的对象并str3
指向新对象,因为使用新运算符并str4
指向相同的对象,str1
并且str2
因为intern()
方法检查到字符串池中是否具有相同的值的字符串。
str1=str2=str3=str4=null;
一个对象将有资格进行 GC。也就是通过创建的对象String str3=new String("JAVA")
。第一个 String 对象始终可以通过存储在字符串文字池中的引用进行访问。
我的解释正确吗?