【发布时间】:2018-07-14 20:14:14
【问题描述】:
你能解释一下为什么输出是这样的
false
而不是
abcd abc false
代码:
public class StringDemo{
public static void main(String [] args){
String s1 = "abc";
String s2 = s1;
s1+="d";
System.out.println(s1+ " "+ s2 +" "+ s1==s2); //false
}
}
【问题讨论】:
-
@PradeepSimha 不完全是。正如安迪在他的回答中所显示的那样。此外,这取决于 OP 是否使用
==进行引用相等,这对==运算符有效,或者需要使用equals的内容相等。 -
我不知道为什么这个问题会受到如此多的反对。这不是关于非常简单和常见的
equals vs ==问题(尽管使用equals可以解决OP 问题),而是关于+(连接)与==优先级。对于已经知道答案的我来说,找到带有解释的重复问题并不容易,所以我想对于不知道发生了什么事情的 OP 来说,找到正确答案会更加困难。 -
您似乎不小心用完全不同的问题覆盖了您的问题。我为你解开了那个。请使用“”按钮提出不同的问题。欢迎对此问题进行改进,但不应从根本上对其进行更改以致现有答案无效。
-
我已禁用提出新问题