
HashMap
Lebron_Chen
这个作者很懒,什么都没留下…
展开
-
HashMap源码分析,基于1.8,对比1.7
一、HashMap概述1、HashMap概述HashMap以key-value形式存储数据,key允许为null,value也允许为null。HashMap线程不安全,需要线程安全的HashMap可以使用ConcurrentHashMap。HashMap底层是数组,又被称为hash桶,每个桶中存放的是链表,链表中的节点存储着集合中的元素。JDK 1.8中当hash桶中链表长度达...原创 2018-08-22 17:29:19 · 1106 阅读 · 0 评论 -
HashTable源码分析
1、HashTable概述HashTable以key-value形式存储数据,key不允许为null,value也不允许为null。HashTable线程安全。HashTable对大量的方法都添加synchronized锁,所以性能不高。HashTable底层是数组,又被称为hash桶,每个桶中存放的是链表,链表中的节点存储着集合中的元素。当HashTable中的元素数量达到t...原创 2018-08-22 22:40:43 · 444 阅读 · 0 评论 -
HashMap扩容死循环问题
JDK 1.7 HashMap 扩容核心算法下面这是JDK 1.7中HashMap扩容时调用的核心代码,作用是将原hash桶中的节点转移到新的hash桶中:void transfer(Entry[] newTable) { Entry[] src = table; int newCapacity = newTable.length; for (int j = 0...原创 2018-08-21 17:18:47 · 8796 阅读 · 5 评论