当我执行下面的代码时,输出为“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()方法更好,但为什么输出有差异?
答案 0 :(得分:1)
始终使用equals,因为==
并不总是有效。尽管对象在内存中是相同的,但它可能存储在不同的地方,==
检查对象的身份而不是相等。