String s="abc";
String s1=s;
s=s+"d";
System.out.println(s==s1 +" "+ s.equals(s1));
System.out.println(s.equals(s1));

上面的代码是用Java编写的。
我以为上面程序的输出可能是
false false
false

但实际输出是
false
false

谁能解释为什么这是输出,为什么不像上一个那样。

提前致谢。

最佳答案

System.out.println(s==s1 +" "+ s.equals(s1));

等效于:
System.out.println(s==(s1 +" "+ s.equals(s1)));

如果您使用过:
System.out.println((s==s1) + " " + s.equals(s1));

你会得到:
false false

09-10 07:06
查看更多