我碰到一个问题就问的以下的输出:差异,并引用
String s1 = "String 1";
String s2 = "String 2";
String s3 = s1 + s2;
String s4 = "String 1" + "String 2";
System.out.println(s3==s4);
输出 - false
现在,由于字符串不是使用new操作符创建的,所以这些对象是在字符串池中创建的,因此根据我的理解,s1 + s2
和"String 1" + "String 2"
应该相等,而s3==s4
应该是true
。
但它并不是真的发生。任何人都可以解释一下吗?
查看其中哪些等同于##intern'调用的结果 – Rogue
此外,还有[此文档讨论](https://stackoverflow.com/documentation/java/109/strings#t=201706040901437355417) – KevinO