int i = 2; //10
int j = i >> 1; // 1 右移 除以2
int z = i << 1; //100 左移 乘以2
System.out.println(j); //j=1
System.out.println(z); // z=4
拿2 来说 ,二进制的表示 : 0000 0000 0000 0010 >> 右移后为 0000 0000 0000 0001
对于计算机来说,位运算比乘除运算快的多,计算机底层的乘除运算,是有一些寄存器来实现的,没有直接二进制数位移来的快
所以,在很多底层代码里,比如HashMap源码里,牵扯到乘除运算,都用的位运算