腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
butterfly100
专栏作者
举报
20
文章
63476
阅读量
32
订阅数
订阅专栏
申请加入专栏
全部文章
微服务
其他
python
数据库
云数据库 SQL Server
sql
hashmap
java
oracle
腾讯云测试服务
编程算法
存储
网络安全
jdk
jvm
ssh
dubbo
uml
安全
数据结构
搜索文章
搜索
搜索
关闭
HashMap源码阅读
hashmap
数据结构
jdk
java
编程算法
HashMap是Map家族中使用频度最高的一个,下文主要结合源码来讲解HashMap的工作原理。 1. 数据结构 HashMap的数据结构主要由数组+链表+红黑树(JDK1.8后新增)组成,如下图所示: 左侧数组是哈希表,数组的每个元素都是一个单链表的头节点,当不同的key映射到数组的同一位置,就将其放入单链表中来解决key的hash值的冲突。 当链表的长度>8时,JDK1.8做了数据结构的优化,会将链表转化为红黑树,利用红黑树快速增删改查的特点提升HashMap的性能,查询效率链表O(N),红黑树是O(l
butterfly100
2018-04-17
663
0
ConcurrentHashMap源码阅读
hashmap
安全
1. 前言 HashMap是非线程安全的,在多线程访问时没有同步机制,并发场景下put操作可能导致同一数组下的链表形成闭环,get时候出现死循环,导致CPU利用率接近100%。 HashTable是线程安全的,使用synchronized锁住整个table的方式来保证并发访问下的线程安全,但效率却比较低下。因为线程1调用HashTable的put同步方法时,线程2的put或get等方法则进入阻塞状态,所以竞争越激烈,效率越低。 ConcurrentHashMap是支持高并发、高吞吐量的线程安全的Map实现。
butterfly100
2018-04-17
1K
0
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
立即发文
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档