随笔分类 - Java集合类和并发容器
摘要:一、HashMap的实现原理? 此题可以组成如下连环炮来问 你看过HashMap源码嘛,知道原理嘛?为什么用数组+链表?hash冲突你还知道哪些解决办法?我用LinkedList代替数组结构可以么?既然是可以的,为什么HashMap不用LinkedList,而选用数组? 1.你看过HashMap源码
阅读全文
摘要:为什么要用ConcurrentHashMap HashMap线程不安全,而Hashtable是线程安全,但是它使用了synchronized进行方法同步,插入、读取数据都使用了synchronized,当插入数据的时候不能进行读取(相当于把整个Hashtable都锁住了,全表锁),当多线程并发的情况
阅读全文
摘要:HashMap是由数组加链表的结合体。如下图: 图中可以看出HashMap底层就是一个数组结构,每个数组中又存储着链表(链表的引用) JDK1.6实现hashmap的方式是采用位桶(数组)+链表的方式,即散列链表方式。JDK1.8则是采用位桶+链表/红黑树的方式,即当某个位桶的链表长度达到某个阈值(
阅读全文
摘要:Map是Java最常用的集合类之一。它有很多实现类,我总结了几种常用的Map实现类,如下图所示。本篇文章重点总结几个Map实现类的特点和区别: 特点总结: 实现类 HashMap LinkedHashMap TreeMap Hashtable ConcurrentHashMap 允许key/valu
阅读全文
摘要:1. ArrayList ArrayList 是一个数组队列,相当于动态数组。与Java中的数组相比,它的容量能动态增长。它继承于AbstractList,实现了List, RandomAccess, Cloneable, java.io.Serializable这些接口。默认容量是10(从源码中可
阅读全文

浙公网安备 33010602011771号