摘要: 一、HashMap的实现原理? 此题可以组成如下连环炮来问 你看过HashMap源码嘛,知道原理嘛?为什么用数组+链表?hash冲突你还知道哪些解决办法?我用LinkedList代替数组结构可以么?既然是可以的,为什么HashMap不用LinkedList,而选用数组? 1.你看过HashMap源码 阅读全文
posted @ 2019-11-20 22:18 windpoplar 阅读(1660) 评论(0) 推荐(1) 编辑
摘要: 为什么要用ConcurrentHashMap HashMap线程不安全,而Hashtable是线程安全,但是它使用了synchronized进行方法同步,插入、读取数据都使用了synchronized,当插入数据的时候不能进行读取(相当于把整个Hashtable都锁住了,全表锁),当多线程并发的情况 阅读全文
posted @ 2019-11-20 20:07 windpoplar 阅读(516) 评论(0) 推荐(0) 编辑
摘要: HashMap是由数组加链表的结合体。如下图: 图中可以看出HashMap底层就是一个数组结构,每个数组中又存储着链表(链表的引用) JDK1.6实现hashmap的方式是采用位桶(数组)+链表的方式,即散列链表方式。JDK1.8则是采用位桶+链表/红黑树的方式,即当某个位桶的链表长度达到某个阈值( 阅读全文
posted @ 2019-11-20 19:55 windpoplar 阅读(195) 评论(0) 推荐(0) 编辑