HashMap底层实现原理概述

原文https://blog.csdn.net/fedorafrog/article/details/115478407

hashMap结构

在这里插入图片描述

常见问题

在理解了HashMap的整体架构的基础上,我们可以试着回答一下下面的几个问题,如果对其中的某几个问题还有疑惑,那就说明我们还需要深入代码,把书读厚。

  • HashMap内部的bucket数组长度为什么一直都是2的整数次幂
  • HashMap默认的bucket数组是多大
  • HashMap什么时候开辟bucket数组占用内存
  • HashMap何时扩容?
  • 桶中的元素链表何时转换为红黑树,什么时候转回链表,为什么要这么设计?
  • Java 8中为什么要引进红黑树,是为了解决什么场景的问题?
  • HashMap如何处理key为null的键值对?

new HashMap()

在JDK 8中,在调用new HashMap()的时候并没有分配数组堆内存,只是做了一些参数校验,初始化了一些常量

public Has

猜你喜欢

转载自blog.csdn.net/qq_44787816/article/details/129033486