hashCode值的生成規則

2022-06-24 06:33:08 字數 685 閱讀 4924

**於

1、對於integer原始碼如下:

@override

public int hashcode()

public static int hashcode(int value)

可以看出value就是對應的hashcode值

2、對於string原始碼如下:

public int hashcode() 

hash = h;

}return h;

}

可以看出其value為依次遍歷其每個字元成員,遞迴的將當前的hashcode* 31 +下乙個成員對應的ascii值

eg:  string s = "10";

"1" ----> 49

"0" ------->48

h = 31 * 0 + 49 h = 49

h = 31 * 49 + 48 h = 1567

long型別原始碼如下:     

可以看出其值為當前值與當前邏輯右移32位之後異或得出的值
public static int hashcode(long value) 

public static int hashcode(long value)

MongoDB中ObjectId生成規則參考

mongodb中我們經常會接觸到乙個自動生成的字段 id 型別為objectid。本文會詳解objectid的構成和使用。objectid構成 之前我們使用mysql等關係型資料庫時,主鍵都是設定成自增的。但在分布式環境下,這種方法就不可行了,會產生衝突。為此,mongodb採用了乙個稱之為obje...

類似discuz密碼的生成規則

生成乙個串,uniqid rand uniqid prefix,more entropy 函式基於以微秒計的當前時間,生成乙個唯一的 id。如果 prefix 引數為空,則返回的字串有 13 個字串長。如果 more entropy 引數設定為 true,則是 23 個字串長。取出後6位 salt ...

函式過載 C C 符號生成規則

函式符號 在編譯階段生成的字串,來指明函式的定義或原型 c函式符號生成規則 cdel呼叫約定 c標準呼叫約定 函式名前加下劃線。stdcall呼叫約定 函式名前加下劃線,函式名後加 符號和其引數位元組。fastcall呼叫約定 函式名前加 符號,函式名後加 字元和其引數位元組。c 函式符號生成規則 ...