以下代码段中的代码只是比较字符串引用。
String str1 = "mystring9";
String str2 = "mystring"+String.valueOf(9);
System.out.println(str1==str2);
在这种情况下,str1==str2
返回false
。
以下代码段也返回false
.
String str1 = "mystring9";
String str2="mystring"+str1.length();
System.out.println(str1==str2);
但是,以下代码返回true
.
String str1 = "mystring9";
String str2 = "mystring"+9;
System.out.println(str1==str2);
我认为,"mystring"+9
这段代码中的表达式应该在内部进行评估,String.valueOf(9)
但为什么前两个示例返回的输出与前面的示例不同?