Java集合关键词汇总(分模块,纯关键词)-cnblog
面试关键词汇总(分模块,纯关键词)
通用集合基础
Collection、Map、List、Set、有序、可重复、key唯一
modCount、expectedModCount、fail-fast、ConcurrentModificationException
迭代器remove、fail-safe、弱一致性
Collections、SynchronizedList、mutex全局锁
CAS、乐观锁、synchronized、悲观锁、锁粒度
volatile、可见性、COW写时复制、快照、OOM
LRU、removeEldestEntry
List
ArrayList
Object动态数组、懒加载、默认容量10、1.5倍扩容、System.arraycopy
随机访问O(1)、中间增删O(n)、线程不安全、数组越界、数据丢失
LinkedList
双向链表、Node、前驱后继、无扩容、首尾增删O(1)、随机查询O(n)、栈、队列、内存碎片
Vector
2倍扩容、方法加synchronized、废弃
CopyOnWriteArrayList
ReentrantLock、读无锁、volatile数组引用、数组完整拷贝、无modCount、不抛并发修改异常、读多写少
Set
HashSet
底层HashMap、PRESENT、hashCode+equals、无序、线程不安全
LinkedHashSet
底层LinkedHashMap、双向链表、插入有序
TreeSet
底层TreeMap、红黑树、Comparable、比较器、自动排序、O(logn)、不可存null
CopyOnWriteArraySet
底层CopyOnWriteArrayList、addIfAbsent、O(n)去重、线程安全
Map
HashMap JDK8
数组+链表+红黑树、初始容量16、2的幂、负载因子0.75、hash扰动函数
哈希桶、链表≥8树化、≤6退链、resize扩容2倍、尾插法
允许一个null key、并发不安全、JDK7头插死循环、size非原子
LinkedHashMap
继承HashMap、双向链表、accessOrder、插入顺序、访问顺序、LRU本地缓存
TreeMap
红黑树、key排序、区间查询、key不能null、O(logn)
Hashtable
全局synchronized、扩容2倍、不允许null键值、淘汰
ConcurrentHashMap JDK8
CAS+synchronized桶锁、无全局锁、table volatile、ForwardingNode、transfer多线程协助扩容
nextTable、不允许key/value null、无modCount、批量操作弱一致性、高并发首选

浙公网安备 33010602011771号