04 2025 档案
摘要:HashTable https://blog.csdn.net/m0_54063422/article/details/131349967 与hashMap区别 Hashtable是线程安全的,HashMap是线程不安全的 默认容量,扩容倍数不同。Hashtable的默认容量是11,HashMap的
        阅读全文
                
摘要:ConcurrentHashMap jdk1.7 实现原理 数据结构 segment数组+hashEntry数组+链表 而每一个 Segment 是一个类似于 HashMap 的结构,所以每一个 HashMap 的内部可以进行扩容 但是 Segment 的个数一旦初始化就不能改变,默认 Segmen
        阅读全文
                
摘要:HashMap 使用分析 特点 键值存储 无序存储 动态扩容 允许空键和空值 快速查找和插入 不是线程安全的 使用 2 的幂作为哈希表的大小 使用场景 单线程下的无序的键值存储集合,如果要有序可以用TreeMap,如果要多线程可以用ConcurrentHashMap 设计分析 设计目标 单线程下的键
        阅读全文
                
摘要:Collections.synchronizedList 包装 使用分析 优点 线程安全,synchronized 方法内代码级别加锁 缺点 性能问题:方法级别加synchronized锁 复合操作非线程安全:但对于复合操作(如先检查列表是否包含某个元素,然后再添加该元素),Collections.
        阅读全文
                
摘要:CopyOnWriteArrayList 线程安全 使用分析 优点 性能高:读取没有锁,更改才有锁 读写隔离高:更改时不影响正常读取 缺点 性能问题:不适合写操作多场景,导致复制次数多,性能低 内存问题:不适合数据量大的场景,导致每次复制时占用内存多 数据弱一致性: 不支持快速失败机制,在修改操作开
        阅读全文
                
摘要:LinkedList 使用分析 优点 性能上:基于双向链表插入和删除操效率比Arraylist高 实际插入和删除还是需要移动指针所以实际时间复杂度O(n) 内存上:不需要连续的内存空间 缺点 性能上: 实际插入和删除还是需要移动指针所以实际时间复杂度O(n) 随机访问效率较低,时间复杂度为 O(n)
        阅读全文
                
摘要:ArrayList 使用分析 优点 改查效率高 自动扩容机制1.5倍 缺点 线程不安全,安全的可以用copyOnwritArrayList, synchronizedList,vector 插入和删除操作效率低 底层时用Object[]数组实现,需要连续的内存空间 遍历的时候如果被修改会出现Conc
        阅读全文
                
 
                    
                     
                    
                 
                    
                
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号