equals()方法很多情況下需要重寫

2021-08-01 19:42:46 字數 449 閱讀 6253

object物件內建equals方法,預設是比較引用。所以所有extends它的類都有了這個方法,但是每個模擬較的方式是不一樣的,string overidding了equals方法,但是有些類如stringbuffer沒有override equals方法,所以無法使用equals方法比較兩個stringbuffer.

同理 陣列物件沒有實現equals方法,所以無法比較。

equals方法的呼叫,使用多型性。從具體類開始逐層呼叫類繼承層次,直到找到equals方法的實現類。然後,呼叫該方法進行物件內容比較。這裡的物件內容在具體類沒有實現自己的equals方法時不能比較具體的內容,物件內容內容是否相等取決於super級的內容相等。如果所有super級類都沒有實現equals進行自身具體內容的比較,最終呼叫頂級類object的預設equals方法。該預設實現只比較類例項物件的內容位址(也就是前幾樓說的引用)是否相等,這時候的比較是與==等效的。

哪些情況下需要建立索引?哪些情況下不要建立索引?

1.主鍵自動建立唯一索引 2.頻繁作為查詢條件的字段應該建立索引 3.查詢中與其他表有關聯的字段,例如外來鍵關係 4.頻繁更新的字段不適合建立索引,因為每次更新不單單是更新記錄,還會更新索引,儲存索引檔案 5.where條件裡用不到的字段,不建立索引 6.高併發的情況下一般選擇復合索引 7.查詢中排...

程式中,一對多,多對多,情況下的修改。

這種場景參加工作幾個月來,遇到了很幾次了,其中還出現過兩次bug。這次我還想整理下。假定場景,活動,和門店存在繫結關係,乙個活動可以繫結多個門店。乙個門店也能繫結多個活動。這應該算多對多的關係吧,不過同樣適應。首先假定,一對多。乙個活動繫結多個門店。首先是要看資料庫怎麼儲存的,一對多是可以選擇的比如...

什麼情況下,需要做血液透析?

血液透析 是 急慢性腎衰竭和其他一些嚴重疾病的重要方法。常見疾病的透析指徵如下 急性腎損傷 一 透析指徵 出現下列任何一種情況即可進行透析 一 血清肌酐 354umol l 4mg dl 或尿量 0.3ml kg h 持續24小時以上。二 高鉀血症,血清鉀 6.5mmol l。三 血hco3 15 ...