這裏是從HashMap
實現的方法,從java.util
包:secondaryHash(對象鍵)實現的解釋
static int secondaryHash(Object key) {
int hash = key.hashCode();
hash ^= (hash >>> 20)^(hash >>> 12);
hash ^= (hash >>> 7)^(hash >>> 4);
return hash;
}
有人能解釋這些是什麼^=
,>>>
,^
事情,什麼是怎麼回事?
閱讀[這裏](http://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html)。 – alex2410
'^'是一個按位XOR,'>>>'是一個無符號的右移。 '^ ='與'+ ='具有相同的含義,但是具有按位異或。 –
你探索了什麼實現? HotSpot的'HashMap'沒有'secondaryHash()'方法。 – leventov