【发布时间】:2012-03-30 16:38:54
【问题描述】:
我有以下几行代码来比较字符串。 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
【问题讨论】:
-
您是否尝试过先搜索 SO? :(
-
(我没有关闭这个,因为我还没有发现另一个问题像这个一样专注,但我确信它存在)