首頁  >  文章  >  Java  >  java中的equals與==的區別

java中的equals與==的區別

angryTom
angryTom原創
2019-11-11 15:18:514323瀏覽

java中的equals與==的區別

java中的equals與==的差異

##「==」 比較的是兩個引用在記憶體中指向的不是同一物件(即同一記憶體空間),也就是說在記憶體空間中的儲存位置是否一致。

equals,常用的是物件裡面的內容是否相等

equals方法是由Object類別提供的,可以由子類別來進行重寫(推薦教學:

java教學

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

預設的實作只有當物件和自身進行比較時才會回傳true, 這個時候和「==」是等價的。

Java中許多類別(String類別  Date類別  File類別)等都對equals方法進行了重寫,這裡拿常見的String類別舉例。

public class Test {
    public static void main(String[] args) {
        String num1= "abc";
        String num2= "abc";
        System.out.println(num1==num2);//true
 
        String num3 = new String("abc");
        String num4= new String ("abc");
        System.out.println(num3==mnum4);//false
        System.out.println(num3.equals(num4));//true
    }
}

Java 語言裡的 equals方法其實是交給開發者去覆寫的,讓開發者自己去定義滿足什麼條件的兩個Object是equal的。

等於說是equals方法和"=="完全一樣;但是equals方法可以重寫;"=="的話,如果是值型別則比較值是否相等;如果是引用型別則判斷物件位址是否相等。

以上是java中的equals與==的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn