除了已经说过的内容外,Java中的字符串文字(即像Java 一样
"abcd"但不喜欢的字符串)
new String("abcd")是经过内插的-这意味着,每次引用“ abcd”时,你都将引用一个String实例,而不是一个新实例。每一次。因此,你将拥有:
String a = "abcd";String b = "abcd";a == b; //True
但是如果你有
String a = new String("abcd");String b = new String("abcd");那么就有可能
a == b; // False
(如果有人需要提醒,请务必使用
.equals()比较字符串;
==测试物理相等性)。
Interning String文字很好,因为它们经常被使用多次。例如,考虑(人为)代码:
for (int i = 0; i < 10; i++) { System.out.println("Next iteration");}如果没有String的内部,则“下一次迭代”将需要实例化10次,而现在只需要实例化一次。



