2013-04-06 256 views
-1

我現在在學Java。當我使用==.equals()進行字符串比較時,我得到了不同的結果。但是沒有編譯錯誤。任何人都可以解釋這兩個操作之間的區別嗎?==和.equals()之間的區別?

回答

1

==測試引用相等。

.equals()試驗值相等。

例子:

String fooString1 = new String("Java"); 
String fooString2 = new String("Java"); 

// false 
fooString1 == fooString2; 

// true 
fooString1.equals(fooString2); 

注:

==處理空字符串值。

.equals()從一個空字符串將導致Null Pointer Exception當==用於字符串之間對比

+0

感謝戈庫爾。這非常有用。 – 2013-04-06 15:50:20

3
  • s1 == s2比較字符串參考文獻;這很少是你想要的。
  • s1.equals(s2)比較兩個字符序列;這幾乎總是你想要的。
0

然後它檢查的對象的參考。但是當使用equals時,它實際上會檢查String的內容。因此,例如

String a = new String("ab"); 
    String b = new String("ab"); 
    if(a==b) ///will return false because both objects are stored on the different locations in memory 

    if(a.equals(b)) // will return true because it will check the contents of the String 

我希望這有助於

相關問題