Java基础面试题之===集合篇

1:说一说HashMap的原理

        核心三大点:hashmap怎么存数据、hash冲突了怎么办?、怎么进行扩容?

HashMap怎么存数据:

        怎么算hash值:

                对象.hashcode得到32位int,高16和低16位进行异或。

                目的是:

                        hash分布更离散,减少hash碰撞

       怎么算索引值:(2的n次方)

                (数组长度-1) 按位与 hash