java并发
今天也要学习哦
浙江大学硕士研究生
展开
-
ConcurrentHashMap底层实现原理及扩容机制
目录前言ConcurrentHashMapJDK1.7的实现初始化put操作get操作size操作JDK1.8的实现NodeTreeNodeput操作get函数replaceNode函数扩容机制扩容时读写操作的处理总结前言我们都知道HashMap在多线程情况下,在put的时候,插入的元素超过了容量(由负载因子决定)的范围就会触发扩容操作,就是rehash,这个会重新将原数组的内容重新hash到新的扩容数组中,在多线程的环境下,存在同时其原创 2020-09-04 17:21:36 · 2461 阅读 · 0 评论 -
HashMap底层实现原理及扩容过程
目录一、hash函数实现二、HashMap内部哈希数组的长度为什么要取2的幂三、哈希数组的扩容1、什么时候触发扩容?2、扩容做什么事情?1)新hash数组初始化2)已存储键值对重新散列四、HashMap存储原理1、put操作1)hash数组索引位置为null2)索引位置第一个节点key与要存储的键值对key相等3)要存储的位置已经是树节点4)普通节点2、get操作五、与JDK1.7的差异Map存储键值对,并且实现方式相对于List来说要复杂很多转载 2020-09-04 16:10:58 · 2764 阅读 · 0 评论