1. 程式人生 > >java中==和equals的區別

java中==和equals的區別

我們分別解釋兩者區別

==:

       java的變數型別分為值型別和引用型別,如果比較的是值型別那麼直接比較的是值是否相等,

       如果比較的是引用型別那麼比較的是記憶體地址。

equals:

       equals是Object類的一個方法,如果物件沒有重寫equals方法則比較的是地址,

       如果重寫了equals方法則比較的是具體的值(如String類)。

例String類的equals方法:

    public boolean equals(Object anObject) {         if (this == anObject) {             return true;         }         if (anObject instanceof String) {             String anotherString = (String)anObject;             int n = value.length;             if (n == anotherString.value.length) {                 char v1[] = value;                 char v2[] = anotherString.value;                 int i = 0;                 while (n-- != 0) {                     if (v1[i] != v2[i])                         return false;                     i++;                 }                 return true;             }         }         return false;     }