java面試 為什麼需要重寫equals方法

2021-08-14 20:53:55 字數 303 閱讀 7671

預設equals在比較兩個物件時,是看他們是否指向同乙個位址的。

但有時,希望兩個物件只要是某些屬性相同就認為他們的quals為true。比如:

student s1 = new student(1,"name"); student s2 = new student(1,"name");

如果不重寫equals的話,他們是不相同的,因為引用s1和s2指向的堆記憶體位址顯然不一樣,所以我們要重些equals,

判斷只要他們的id和名字相同equals就為true,在一些集合裡有時也這樣用,集合裡的contain也是用equals來比較

為什麼需要重寫doget dopost呢?

在學習servlet的過程中,我們大多時候編碼都是直接繼承httpservlet這個類,並且重寫doget dopost,但是為什麼要重寫這兩個方法?從原始碼來看 從原始碼來看 獲取客戶端向伺服器端傳送資料所依據的協議名稱的string型別 http1.1,http1.0 無論你是http1.1還是...

為什麼重寫就一定需要重寫HashCode方法

equals 和 hashcode方法是屬於object的,所以每個物件都有自己的equals 和 hashcode方法。在object中equals方法是用來判斷兩個物件是否是同乙個也就是他們的儲存位址是一樣的。但是往往我們有自己的需要定義equal,所以重寫equals方法很重要!下面來說說eq...

為什麼重寫equals必須重寫hashCode呢

在理解這個問題時,我認為最先理解的應該是為什麼會重寫equals呢?理解清楚這個的前提下才有必要去理解為什麼需要去重寫hashcode!為什麼需要重寫equals方法呢?我認為是為了適應業務場景的需求而需要對類的equals方法進行重寫,最經典的重寫equals方法的例子莫過於string類了,在o...