2021年3月19日 百度开发实习面试(质量效能研发部)(一面)
1 | 自我介绍 |
1.1 hashmap 什么时候扩容呢?

因为size 已经大于等于阈值了,说明Entry数量较多,哈希冲突严重,那么若该Entry对应的桶不是一个空桶,这个Entry的加入必然会把原来的链表拉得更长,因此需要扩容;若对应的桶是一个空桶,那么此时没有必要扩容。

上述参数中:
loadFactor:装载因子,是一个0-1之间的系数,根据它来确定需要扩容的阈值,默认值是0.75。

1.2 为什么hashmap 的初始长度要设置为16呢?
HashMap中初始化大小为什么是16? 为什么链表的长度为8是变成红黑树?为什么为6时又变成链表?


1.3 说一下hashmap为什么不是安全的呢?
面试官问:HashMap在并发情况下为什么造成死循环?一脸懵
JDK1.7和JDK1.8中HashMap为什么是线程不安全的?
以上两个博客结合起来看,就能明白了!!!
手撕代码答案如下:
1 | public class Singleton { |
- 本文作者: feng之锋
- 本文链接: http://example.com/2021/03/19/2021.3.19百度开发实习面试(质量效能研发部)/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!
