由hashCode 引發的一系列知識延伸

2021-08-28 13:55:00 字數 539 閱讀 5625

public native int hashcode();
hashcode()作為object類的乙個方法,返回物件的hashcode值——這個值與jvm相關,通常是物件相關資訊對映成的乙個數值。

hashcode()一般用於雜湊容器,比如hashmap。

hashmap的put方法原始碼如下:

public v put(k key, v value) 

}modcount++;

addentry(hash, key, value, i);

return null;

}

需要注意一下幾方面:

hashmap的hash()方法原始碼如下:

static final int hash(object key)
>>>表示無符號右移;^表示異或——保證了hashcode的32位值只要有一位發生了變化,就會引起hash值的改變。

2. 兩個物件的hashcode值相等,兩個物件是否相等?

DROP TRUNCATE分割槽引發的一系列問題

生產的分片資料庫innodb buffer pool reads偏高 某個開發dba指出buffer pool記憶體裡的資料和實際占用磁碟空間應是一致的,也就是varchar n 欄位在buffer pool中也僅占用n個位元組 drop和truncate分割槽期間,查詢掛起在opening tab...

針對distinct疑問引發的一系列思考

假設有如下這樣一張 這裡的資料,具有如下的特徵 在乙個departmentid中,可能會有多個name,反之也是一樣。就是說name和departmentid是多對多的關係。現在想實現這樣乙個查詢 按照departmentid排完序之後 第一步 再獲取name列的不重複值 第二步 而且要保留在第一步...

mac安裝numpy引發的一系列問題

在安裝numpy和matplotlib過程中,直接提示 numpy requires system python 2.7 to install 但是mac電腦自帶的python本身是2.7,在stackoverflow上找到一篇文章 mac安裝matplotlib的步驟 然後寫了下面這段簡單的 測試...