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