中易网

java有没有不会冲突的hash算法

答案:1  悬赏:30  
解决时间 2021-11-24 03:59
java有没有不会冲突的hash算法
最佳答案
java.util.HashMap的中put方法的具体实现:
static inline intptr_t get_next_hash(Thread * Self, oop obj) {
intptr_t value = 0 ;
if (hashCode == 0) {
// This form uses an unguarded global Park-Miller RNG,
// so it's possible for two threads to race and generate the same RNG.
// On MP system we'll have lots of RW access to a global, so the
// mechanism induces lots of coherency traffic.
value = os::random() ;
} else
if (hashCode == 1) {
// This variation has the property of being stable (idempotent)
// between STW operations. This can be useful in some of the 1-0
// synchronization schemes.
intptr_t addrBits = intptr_t(obj) >> 3 ;
value = addrBits ^ (addrBits >> 5) ^ GVars.stwRandom ;
} else
if (hashCode == 2) {
value = 1 ; // for sensitivity testing
} else
if (hashCode == 3) {
value = ++GVars.hcSequence ;
} else
if (hashCode == 4) {
value = intptr_t(obj) ;
} else {
// Marsaglia's xor-shift scheme with thread-specific state
// This is probably the best overall implementation -- we'll
// likely make this the default in future releases.
unsigned t = Self->_hashStateX ;
t ^= (t << 11) ;
Self->_hashStateX = Self->_hashStateY ;
Self->_hashStateY = Self->_hashStateZ ;
Self->_hashStateZ = Self->_hashStateW ;
unsigned v = Self->_hashStateW ;
v = (v ^ (v >> 19)) ^ (t ^ (t >> 8)) ;
Self->_hashStateW = v ;
value = v ;
}

value &= markOopDesc::hash_mask;
if (value == 0) value = 0xBAD ;
assert (value != markOopDesc::no_hash, "invariant") ;
TEVENT (hashCode: GENERATE) ;
return value;
}

  该实现位于hotspot/src/share/vm/runtime/synchronizer.cpp文件下。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
新版QQ空间像哪些微情感语录哪里去了呢找不到
宫槛的意思是什么啊?请解释下!
北京万宝油烟机修理有哪些?
人才网电话销售话术技巧
人寿保险鑫如意白金版金账户升级里面的钱借多
反复不受控去想一件事,又找不到答案,感觉很
乔峰打得过石破天吗?
网购要求退款是否要有身份证复印件,银行卡号
挨挨抢抢的意思是什么啊?请解释下!
谁知到哪个同学录最漂亮吗?图!急!!!!!
C语言结构体累加的问题!请看一下,谢谢!
重视品牌塑造提升企业核心竞争力
老公在外面租房子养了一个女人算重婚吗?
前駈的意思是什么啊?请解释下!
macbookpro在哪买最便宜
推荐资讯
长城宽带100兆多少钱一年
隋柯名破破引力波mv与金泰妍why的mv相似,不
歌词:在你的心中也渴望被爱的歌
初二语文第一次月考,考得不好,写300字总结
有多少人两夫妻是同姓的
今天小便发现尿液带红色,以前也没有啊,以前
溫家鏡的意思是什么?溫家鏡的释义是什么啊?
诈骗通知书被寄到家里了
尿酸高是咋会事,表现
热和的意思是什么啊?请解释下!
市郊新坝供电营业厅地址有知道的么?有点事想
毒花花的意思是什么啊?请解释下!
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?