hashcode原始碼解析

2021-10-05 08:42:37 字數 737 閱讀 8068

hashcode原始碼:

原始碼解析:hash 預設為 0,value為hashcode物件的char型別

由第1456行可以得出,hashcode的計算公式為:s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]   其中s[0]、s[1]為對應的ascii碼。

計算公式對應第1470-1472行的for迴圈。

參照原始碼,我們可以自己編寫**實現hashcode,如下:

public static void main(string args) ;//ascii碼 a:97 a:65 b:66

system.out.println(a[0]*31*31+a[1]*31+a[2]);

char chars = str.tochararray();

int hashcode = gethashcode(chars);

system.out.println(hashcode);

}private static int gethashcode(char chars)

return hash;

}

附ascii碼對照表:

Fabric 原始碼解析 原始碼目錄解析

這裡對重要的一些目錄進行說明 bccsp 與密碼學 加密 簽名 證書等等 相關的加密服務 將fabric中用到的密碼學相關的函式抽象成了一組介面,便於拓展。bddtests 一種新型的軟體開發模式 行為驅動開 需求 開發 common 一些公共庫 錯誤處理 日誌處理 賬本儲存 策略以及各種工具等等 ...

String原始碼中的HashCode演算法

string中hashcode方法原始碼如下 the value is used for character storage.儲存符串截成的字元陣列 private final char value cache the hash code for the string default to 0 用以...

Spring原始碼解析之 Aop原始碼解析(2)

spring aop 更多的是oop開發模式的乙個補充,幫助oop以更好的方式來解決對於需要解決業務功能模組之上統一管理 的功能 以一副圖來做為aop功能的說明更直觀些。對於類似系統的安全檢查,系統日誌,事務管理等相關功能,物件導向的開發方法並沒有更好的解決方法 aop引入了一些概念。更多的是spr...