欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > java的hashmap的底层设计原理以及扩容规则

java的hashmap的底层设计原理以及扩容规则

2025/5/2 16:53:04 来源:https://blog.csdn.net/m0_57764570/article/details/143954278  浏览:    关键词:java的hashmap的底层设计原理以及扩容规则

一、hashmap的底层设计原理以及扩容规则,是否线程安全,如何线程安全。

1、底层设计原理:

jdk1.7以前采用数组加链表。

jdk1.8及以后采用数组加链表加红黑树,链表超阈值且数组满足条件会转红黑树。

2、在Java中,HashMap会在添加元素时进行扩容,具体的扩容规则如下:

  • 当map中的键值对数量超过阈值(threshold)时,触发扩容。阈值 = 数组长度(capacity)* 加载因子(loadFactor)。
  • 默认的加载因子(loadFactor)是0.75,意味着当HashMap中有75%的bin(bucket)是填满的时候,会进行扩容。
  • 扩容时,HashMap的大小(capacity)会翻倍。

3、线程安全问题

hashmap线程不安全

  • 可以通过Collections.synchronizedMap 加同步锁
  • 也可以使用 ConcurrentHashMap来实现线程安全。

二、八大基本数据类型以及长度

byte:1字节(8位)

short:2字节(16位)

int:4字节(32位)

long:8字节(64位)

float:4字节(32位)

double:8字节(64位)

boolean:1字节(8位)

char:2字节(16位)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词