【发布时间】:2014-05-06 23:01:35
【问题描述】:
如果我跑,
String s1="abc";
那么两者之间有什么区别:
String s2=new String(s1);
和
String s2="abc";
这就是我的困惑:
Head First Java 说:“如果字符串池中已经存在具有相同值的字符串,则 JVM 不会创建重复项,它只是将您的引用变量引用到现有条目。”在我看来观点是 s1 已经创建了“abc”,s2 只是引用它。我说的对吗?
【问题讨论】:
-
就我而言,写
String s2 = new String(s1);从来没有正当理由。即使内容相等,您也不应该编写依赖于两个字符串引用不相等的代码。如果你不这样做,那么String s2 = s1;也可以。
标签: java string immutability string-pool