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中文網其他相關文章!