使用==检查java中的字符串是否相等

时间:2013-05-06 12:40:34

标签: java string equality

当我执行下面的代码时,输​​出为“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()方法更好,但为什么输出有差异?

1 个答案:

答案 0 :(得分:1)

始终使用equals,因为==并不总是有效。尽管对象在内存中是相同的,但它可能存储在不同的地方,==检查对象的身份而不是相等。