Skip to content

HashMap面试问题罗列 ​

Question ​

  • 默认初始化大小是多少?为啥是这么多?为啥大小都是2的幂?

  • HashMap的主要参数都有哪些?

  • JDK1.7和JDK1.8 HashMap 数据结构分别说说?

  • JDK1.7和JDK1.8 HashMap put方法分别说说?

  • JDK1.7和JDK1.8相比将元素插入到链表中时,JDK1.7使用的是头插法,JDK1.8使用的是尾插法,为什么这么做呢?

  • JDK1.7和JDK1.8扩容方式?负载因子是多少?为什是这么多?

  • HashMap为什么resize要将Entry扩充为原来的2倍? 这个过程是怎样的? 这样做有什么好处?

  • JDK1.7中HashMap线程不安全的问题有哪些?原因分别是什么?怎么解决?

  • JDK1.8之后如何链地址法,链表长度是多少时候会转换成红黑树?

  • JDK1.8节点个数是多少时,红黑树会退回链表?

  • 为什么会选择8作为链表转红黑树的阈值?

  • 为啥会线程不安全?

  • HashMap是怎么处理hash碰撞的?

  • hash的计算规则?