2013-05-06 81 views
-6

當我執行下面的代碼是Java相等,輸出爲「假」檢查,如果字符串中使用==

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

然而,當我不使用String類的構造函數的輸出是「真」

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

我知道它更好地使用.equals()方法,但爲什麼輸出差異?

回答

1

始終使用等於自==並不總是奏效。即使對象在內存中相同,它也可能存儲在不同的地方,並且==檢查對象身份而不是相等。