可以使用在基本資料型別變數和引用資料型別變數中
如果比較的是基本資料型別變數:比較兩個變數儲存的資料是否相等。(不一定型別要相同)
如果比較的是引用資料型別變數:比較兩個物件的位址值是否相同.即兩個引用是否指向同乙個物件實體,補充: == 符號使用時,必須保證符號左右兩邊的變數型別一致。
是乙個方法,而非運算子
只能適用於引用資料型別object類中equals()的定義:
public
boolean
equals
(object obj)
可發現object類中定義的equals()和= =的作用是相同的,即 比較兩個物件的位址值是否相同.即兩個引用是否指向同乙個物件實體。
像string、date、file、包裝類等都 重寫 了object類中的equals()方法。重寫以後,比較的不是
兩個引用的位址是否相同,而是比較兩個物件的"實體內容"是否相同。
通常情況下,我們自定義的類如果使用equals()的話,也通常是比較兩個物件的實體內容是否相同。那麼,我們就需要對object類中的equals()進行重寫。而我們重寫的原則就應該是,比較兩個物件的實體內容是否相同。
hashCode和equals面試題
hashcode 相等的兩個物件他們的equals 不一定相等,也就是hashcode 不是絕對可靠的。因為 set 儲存的是不重複的物件,依據 hashcode 和 equals 進行判斷,所以 set 儲存的物件必須重寫這兩個方法 如果自定義物件做為 map 的鍵,那麼必須重寫 hashcode...
equals和hashCode 面試題
1 建立學生實體類並手寫equals和hashcode方法 public class studenta public studenta string name public boolean equals object o if o null this.getclass o.getclass stud...
面試題 throws和throw的區別
throw 如果出現了異常情況,我們可以把該異常丟擲,這個時候的丟擲的應該是異常的物件。throws和throw的區別 面試題 throws 用在方法宣告後面,跟的是異常類名 可以跟多個異常類名,用逗號隔開 表示丟擲異常,由該方法的呼叫者來處理 throws表示出現異常的一種可能性,並不一定會發生這...