Java學習之兩個物件 和equals

2021-07-24 13:17:41 字數 542 閱讀 4229

一、什麼叫兩個物件相等?

1. a = b ?

–他們真的是乙個東西!

只有在兩個引用相等,即都指向同乙個物件(同一塊記憶體指標時),才相等(基本資料型別除外)。

2.a.equals(b) ?

—-呼叫的方法-

呼叫的方法equals,如果物件沒有重寫此方法,那麼呼叫超類的equals方法。最終判斷是否equals。

3.在乙個類重寫equals方法時,最好盡量重寫hascode方法。

4.equals方法的四個特性:

對稱性:如果x.equals(y)返回是「true」,那麼y.equals(x)也應該返回 是「true」。

反射性:x.equals(x)必須返回是「true」。

類推性:如果x.equals(y)返回是「true」,而且y.equals(z)返回是「true」,那麼z.equals(x)也應該返回是「true」。

還有一致性:如果x.equals(y)返回是「true」,只要x和y內容一直不變,不管你重複x.equals(y)多少次,返回都是「true」

Java中比較兩個物件是否相同

class person extends object 判斷是否是同齡人。書寫 順序 1 2 3 4 public boolean equals object obj public boolean compare person p class dog 定義乙個異常語句 public class ob...

Java集合HashSet中的兩個物件怎樣算重複

集合hashset中物件的特點是無序 不允許重複。無序好理解,那麼兩個什麼樣的物件算重複呢?兩個物件重複意味著這兩個物件的內容相同 hashcode 值也相同。1 兩個物件a和b內容相同,表示a.equals b 的值為true。不重寫的話,預設equals 方法是呼叫 進行判斷的,判斷的是兩個物件...

java比較兩個時間

工作中遇到需要將兩個時間進行比對,所以書寫如下方法來實現 public static void main string args public static boolean comparetime string time1,string time2,string format else catch ...