Collections
文章平均质量分 77
我还在等天黑,
这个作者很懒,什么都没留下…
展开
-
HashMap原理分析
今天学习了HashMap数据结构,这里记录一下学习笔记,有错误,还望指出。 文章目录前言HashMap重要成员变量为什么说默认初始容量必须是2的指数幂?为什么一定要转成2的指数次幂?Hash计算index采用位运算hash扩容,有个加载因子?loadfactor = 0.75为什么是0.75容量>=64才会链表转红黑树,否则优先扩容。为什么链表长度>8,链表9的时候转红黑树?扩容死锁问题分析Jdk7-扩容Jdk8-扩容 前言 大家都知道HashMap在JDK1.7和1.8中数据结构发生了比较原创 2021-03-03 17:08:54 · 250 阅读 · 1 评论 -
CopyOnWrite机制
前言 CopyOnWrite机制它的核心思想:读写分离,空间换时间,避免为保证并发安全导致的激烈的锁竞争。 划关键点: CopyOnWrite适用于读多写少的情况,最大程度的提高读的效率; CopyOnWrite是最终一致性,在写的过程中,原有的读的数据是不会发生更新的,只有新的读 才能读到最新数据; 如何使其他线程能够及时读到新的数据,需要使用volatile变量; 写的时候不能并发写,需要对写操作进行加锁; 二、使用步骤 /** * Appends the原创 2021-02-23 01:11:24 · 715 阅读 · 0 评论 -
ConcurrentHashMap原理分析
学习了ConcurrentHashMap数据结构,这里记录一下学习笔记,有错误,还望指出。 文章目录前言数据结构重要成员变量并发安全控制协助扩容helpTransfer扩容transfer总结 前言 之前讲了HashMap在jdk1.7和1.8的区别,那么ConcurrentHashMap在两个版本下也同样有着区别和优化的地方。 数据结构 ConcurrentHashMap的数据结构与HashMap基本类似,区别在于有两点: 内部在数据 写入时加了同步机制(分段锁)保证线程安全,读操作是无锁操作; 扩原创 2021-02-22 22:03:22 · 138 阅读 · 0 评论