2020
10-08
10-08
HashMap源码中的位运算符&详解
引言最近在读HashMap源码的时候,发现在很多运算符替代常规运算符的现象。比如说用hash&(table.length-1)来替代取模运算hash&(table.length);用if((e.hash&oldCap)==0)判断扩容后元素的位置等等。1.取模运算符%底层原理总所周知,位运算&直接对二进制进行运算;而对于取模运算符%:a%b相当于a-a/b*b,底层实际上是除法器,究其根源也是由底层的减法和加法共同完成。所以其运行效率要远远小于位运算符&。2....
继续阅读 >