-6

当我执行下面的代码时,输​​出为“false”

String string1 = new String("ABC");  
String string2= new String("ABC");  
System.out.println(string1==string2);  

但是,当我不使用字符串类的构造函数时的输出是“true”

String string1;
String string2;
string1="ABC";
string2= "ABC";
System.out.println(string1==string2); 

我知道使用 .equals() 方法更好,但为什么输出不同?

4

1 回答 1

1

始终使用等于,因为==并不总是有效。即使对象在内存中相同,它也可能存储在不同的位置,并==检查对象的身份而不是相等性。

于 2013-05-06T12:42:26.480 回答