有HashMap
一个方法
final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { ...}
其中检查密钥的唯一性。为确定唯一性,运算符使用数字比较&
。据此,问题是:
&
两个数字之间的运算符到底是做什么的?
12 & 0 //0
12 & 5 //4
12 & 12 //12
12 & 150 //4
15 & 67888795; //11
有HashMap
一个方法
final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { ...}
其中检查密钥的唯一性。为确定唯一性,运算符使用数字比较&
。据此,问题是:
&
两个数字之间的运算符到底是做什么的?
12 & 0 //0
12 & 5 //4
12 & 12 //12
12 & 150 //4
15 & 67888795; //11
这是按位与运算符
这两个数字以二进制表示。然后运算符
&
比较两个数字的每一位。AND 运算符的工作原理:如果两个数字都为 1,则结果为 1,如果只有一个等于一个或两个零,则结果为 0。然后我们将其从二进制转换回十进制并得到一个常规数字。这是按位与操作。
来自维基: