
hashmap
varyall
这个作者很懒,什么都没留下…
展开
-
Java HashMap的死循环
在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历过,本来觉得没什么好写的,因为Java的HashMap是非线程安全的,所以在并发下必然出现问题。但是,我发现近几年,很多人都经历过这个事(在网上查“HashMap Infinite Loo转载 2017-12-25 11:38:51 · 186 阅读 · 0 评论 -
hashMap底层put和get方法逻辑
1.hashmap put方法的实现:12345678910111213141516171819public V put(K key, V value) { if (key == null) return putForNullKey(value); int hash = hash(key); int i = indexFor(hash, ta...转载 2018-05-14 17:47:51 · 780 阅读 · 0 评论 -
SynchronizedMap
Doug Lea的util.concurrent包除了包含许多其他有用的并发构造块之外,还包含了一些主要集合类型List和Map的高性能的、线程安全的实现。Brian Goetz向您展示了用ConcurrentHashMap替换Hashtable或synchronizedMap,将有多少并发程序获益。 在Java类库中出现的第一个关联的集合类是Hashtable,它是JDK 1.0的一部分。Ha...转载 2018-07-29 22:19:22 · 12246 阅读 · 1 评论 -
hashmap hashtable ConcurrentHashMap 扩容
hashmap扩容: 默认大小: 16, 增长因子:0.75 扩容点规则(什么时候扩容): 16*0.75=12 存储方式:数组+链表 扩容方法:扩容为原来的2倍 出现于:JDK1.2 扩容条件: 1、判断当前个数是否大于等于阈值 2、当前存放是否发生哈希碰撞 hashtable扩容: 默认大小: 11, 增长因子:0.75 扩容点规则(什么时候扩容): 11*0.75...原创 2018-07-29 23:18:06 · 2286 阅读 · 3 评论