[Java基礎]Hashcode

Duancf發表於2024-07-30

預設情況下hashcode是根據物件的地址計算的,但是請注意,物件的地址在GC的時候會發生變化,但是hashcode不能因為地址的變化而發生變化,所以要快取hash值

另外,如果重寫了hashcode方法,根據物件的屬性值計算hashcode,那麼每次修改物件的屬性後都需要重新計算hashcode,並且快取下來,增加了開銷。(String就沒有這種煩惱,因為string不可變性,hashcode只需要計算一次就可以了)