1. 程式人生 > 其它 >== 和 equals()的區別

== 和 equals()的區別

== 的使用
== :運算子
1.可以使用在基本資料型別變數和引用資料型別變數中
2.如果比較的是基本資料型別變數:比較兩個變數儲存的資料是否相等。(不一定型別要相同)
如果比較的是引用資料型別變數:比較兩個物件的地址值是否相同,即兩個引用是否指向同一個物件實體
==符號使用時,必須保證符號左右兩邊的變數型別一致。
equals()方法的使用:
1.是一個方法,而非運算子
2.只能適用於引用資料型別
3.Object類中equals()的定義:

  public boolean equals(object obj) {
        return (this ==obj);
  }

說明: Object

類中定義的equals()和==的作用是相同的:比較兩個物件的地址值是否相同,即兩個引用是否指向同一個物件實體
4.像String、Date、File包裝類等都重寫了Object類中的equals()方法。重寫以後,比較的不是兩個引用的地址是否相同,而是比較兩個物件的"實體內容"是否相同。
5.通常情況下,我們自定義的類如果使用equals( )的話,也通常是比較兩個物件的"實體內容"是否相同。那麼,我們就需要對Object類中的equals()進行重寫。
重寫的原則:比較兩個物件的實體內容是否相同。