是什么让引用比较(==)适用于Java中的某些字符串?
我有以下代码行来比较字符串。str1 不等于 str2,这是可以理解的,因为它比较了对象引用。但是为什么 s1 等于 s2 呢?
String s1 = "abc";
String s2 = "abc";
String str1 = new String("abc");
String str2 = new String("abc");
if (s1==s2)
System.out.println("s1==s2");
else
System.out.println("s1!=s2");
if (str1==str2)
System.out.println("str1==str2");
else
System.out.println("str1!=str2");
if (s1==str1)
System.out.println("str1==s1");
else
System.out.println("str1!=s1");
输出:
s1==s2
str1!=str2
str1!=s1