摘要:
一直以来似乎都有一个错觉,认为map跟其他的集合类一样继承自Collection,其实不然,Map和Collection在结构层次上是没有任何关系的,通过查看源码可以发现map所有操作都是基于key-value对,而不是单独的元素。下面以HashMap为例子,深入对Map的实现机制进行了解,在这个过程中,请打开jdk源码。Hash算法HashMap使用Hash算法,所以在解剖HashMap之间,需要先简单的了解Hash算法,Hash算法一般也成为散列算法,通过散列算法将任意的值转化成固定的长度输出,该输出就是散列值,这是一种压缩映射,也就是,散列值的空间远远小于输入的值空间。简单的说,hash 阅读全文
摘要:
位运算符用来对二进制位进行操作,分为左移位操作和右移位操作。左移位运算符 ●左移位运算的符号为>,右移位运算符左面的操作元称作被移位数,右面的操作数称作移位量。 ●特点 ◆是双目运算符。 ◆操作元必须是整型类型的数据。 ●右位移的过程 ◆假设a是一个被移位的整型数据,n是位移量。 ◆a>>n运算的过程是通过将a的所有位都右移n位,每右移一个位,右边的最低位(即右边的第1位)上的0或1被移出丢弃,并用0或1填充左边的高位(a是正数时用0填充,负数时用1填充)。 ◆比如:对整形数 8>>1的计算 8的二进制表示: 0000,0000,0000,0000,0000,.. 阅读全文