为了大厂而奋斗
不积跬步无以至千里,不积小流无以成海
野狼飞飞
这个作者很懒,什么都没留下…
展开
-
JDK1.8中的HashMap扩容原理
JDK1.8中HashMap的扩容在JDK1.8中对扩容做了一些优化先看一段扩容的核心代码final Node<K,V>[] resize() { Node<K,V>[] oldTab = table; int oldCap = (oldTab == null) ? 0 : oldTab.length; int oldThr = threshold; int newCap, newThr = 0;原创 2021-04-07 17:36:11 · 1446 阅读 · 4 评论 -
多线程下HashMap的扩容导致线程安全性问题
JDK1.7中多线程扩容导致的循环链表首先我们先来看一组单线程下扩容的例子:单线程扩容(引用木霖森77大神博客):假设:hash算法就是简单的key与length(数组长度)求余。hash表长度为2,如果不扩容, 那么元素key为3,5,7按照计算(key%table.length)的话都应该碰撞到table[1]上扩容:hash表长度会扩容为4重新hash,key=3 会落到table[3]上(3%4=3), 当前e.next为key(7), 继续while循环重新hash,key=原创 2021-04-02 14:48:14 · 794 阅读 · 2 评论 -
(一)初识Rocketmq消息队列之简单使用
RocketMq的简单使用原创 2021-03-21 22:20:45 · 116 阅读 · 0 评论 -
通过JDK自带的工具实现延迟队列
通过JDK自带的工具实现延迟队列原创 2021-03-19 13:14:57 · 316 阅读 · 0 评论