考虑下面的代码:字符串分配和输出
String str1 = new String("Hello");
String str2 = str1;
String str3 = new String(str1);
String str4 = str3;
str4 += " World ";
if (str3==str4)
System.out.println(“one”);
if (str3.equals(str4))
System.out.println(“two”);
if (str1==str2)
System.out.println(“three”);
if (str3.equals(str2))
System.out.println(“four”);
输出为:三,四
我不明白这一点。我们只是做STR3 == STR4。他们怎么能不引用同一个对象..? str3 == str4似乎是错误的,我不明白为什么。另外,str3.equals(str4)也返回false,但我想这与我没有得到的第一件事有关。
很想得到解释。
这是一个重复的,请浏览类似问题的网站。 :) – PermGenError 2013-05-14 14:14:27
重复..?怎么来的?我确实在寻找类似的问题。 – Rouki 2013-05-14 14:15:31
这一个..? http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java?那不回答我的问题。 – Rouki 2013-05-14 14:15:53