关于位与运算和桶满了

来源:10-4 HashMap

莨菽菽

2020-06-02

http://img1.sycdn.imooc.com/szimg/5ed669ed0974380820030968.jpg

一直对二进制的东西很懵,就知道代码里面用位运算替代加减乘除会效率高一些,看了文章也一头雾水,什么高八位低八位的

1.老师能讲下位运算平时工作的用途还有能大概讲解或者资料一下,能阐述下二进制和位运算的白话点的概念么?因为我也看过相关文章总是吸收不了

2.还有就是面试会问这个hash()的具体过程么?要像老师这样说整个过程说么?

http://img.mukewang.com/szimg/5ed66cb609ab441d08970095.jpghttp://img1.sycdn.imooc.com/szimg/5ed66cd809a60a7408080136.jpg

3.桶满了是指某个数组元素下的链表长度>16*0.75么

4.这个16是整个hashmap的大小么?有点搞不懂,如果开始设置大小是16,那是实际是数组长度为16还是比如数组长度为8,预留另外8个可能某个数组元素下的bucket长度?

写回答

1回答

翔仔

2020-06-03

同学好,1.位运算可以看看这个 https://cloud.tencent.com/developer/article/1383116

一般是通过位运算来替代乘除,这样运算的效率是非常高的,后续我看看是否能够加一章内容来讲解这个

2.面试的时候先讲解大致流程即可,一般不会问得太细

3.桶满是指每个bucket都有东西了,如果同学说的是扩容限度,那么除了同学说的之外,还有就是达到了有东西的bucket的阈值,默认table.length * loadFactor 

4. 16是bucket总数,即数组长度

0
0

剑指Java面试-Offer直通车 百度资深面试官授课

招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航

8427 学习 · 1870 问题

查看课程