Java容器.xmind

时间:2022-09-26 17:03:09
【文件属性】:
文件名称:Java容器.xmind
文件大小:174KB
文件格式:XMIND
更新时间:2022-09-26 17:03:09
复习 container Collection 标记: *接口 List 标记: interface ArrayList 标记: class CRUD : boolean add​(E e) boolean remove​(Object o) E set​(int index, E element) E get​(int index) 底层数组实现,查询快,增删慢 LinkedList 标记: class CRUD : boolean add​(E e) E get​(int index) 底层为链表,增删快,查询快 Vector 标记: class 底层数组实现,线程安全,速度太慢,没用 CopyOnWriteArrayList 标记: class Set 标记: interface HashSet 标记: class CRUD : boolean add​(E e) boolean remove​(Object o) 底层哈希表,基于hashCode的equals的比较方式,线程不安全,存取速度快。 SortedSet 标记: interface TreeSet 标记: class 实现comparable接口,元素是以二叉树的形式存放的。线程不安全 CopyOnWriteArraySet 标记: class Queue 标记: interface BlockingQueue 标记: interface ArrayBlockingQueue LinkedBlockingQueue ConcurrentLinkedQueue 标记: class Map 标记: *接口 HashMap 标记: class V get​(Object key) V put​(K key, V value) Set keySet​() Set> entrySet​() 线程不安全,速度快,允许存放null键,null值。 SortedMap 标记: class TreeMap 对键进行排序 HashTable 标记: class Properties 标记: class 线程安全,速度慢,不允许存放null键,null值,已被HashMap替代。 Collections 标记: 均以synchronized实现, 性能没用提高 synchronizedCollection synchronizedList synchronizedSet synchronizedMap synchronizedSortedSet synchronizedSortedSet JUC CopyOnWriteArrayList 写有锁,读无锁,读写之间不阻塞,优于读写锁 写入时先copy一个容器副本,再添加新元素,最后替换引用 copy的容器副本过大时,速度慢,不易使用 CopyOnWriteArraySet 底层使用CopyOnWriteArrayList实现 使用addIfAbsent()添加元素时,会遍历数组,如果存在元素,则抛弃副本 ConcurrentHashMap 初始容量默认为16段(segment),使用分段锁设计 ConcurrentLinkedQueue 高并发下性能最好的队列 无锁,采用CAS比较算法,核心参数(V,E,N) V:要更新的变量 E:预期值 N:新值 只有当V==E时,V=N;否则表示已被更新过,则取消当前操作 阻塞队列 BlockingQueue接口 void put(E e) 将指定元素插入此队列,如果没有可用空间,则等待 E take()获取并移除此队列头部元素,如果没有可用元素,则等待 ArrayBlockingQueue 数组结构实现,有界队列,手工固定上限 LinkedBlockingQueue 链表结构实现,*队列(默认上限Integer.MAX_VALUE)

网友评论