hashMap解读

每次面试都会看一遍别人的博客,还不如直接记下,补充自己的笔记 主要是对jdk1.7和jdk1.8的分析 JDK1.7 hashMap结构图 1.7 hashMap变量 初始容量16 ...

February 5, 2023 · 8 min

concurrentHashMap解读

JDK1.7 具有分段锁机制,提高并发执行效率,每个段中使用可重入锁进行加锁, put流程: 根据key的hash值求得segment的位置,trylock()或者scanAndLockForPut()获得segment的锁,再利用hash值,求得桶的下标位置 如果桶位置首个节点为空,则直接复值,如果不为空,则继续遍历 比较key和hash值,如果相等,则替换,遍历到最后都不相等,直接添加到链表头部 查看是否满足扩容条件,满足则扩容,不满足则结束 释放segment锁 scanAndLockForPut 作用就是获取segment的锁,先利用cas,再用lock()(阻塞的),知道获取到锁。 ...

May 31, 2021 · 1 min

概览

java集合 Set TreeSet 基于红黑树实现,支持有序性操作,例如根据一个范围查找元素的操作。但是查找效率不如 HashSet HashSet HashSet 查找的时间复杂度为 O(1)TreeSet 则为 O(logN)。HashSet 基于哈希表实现,支持快速查找,但不支持有序性操作。并且失去了元素的插入顺序信息,也就是说使用 Iterator 遍历 HashSet 得到的结果是不确定的。 ...

May 31, 2021 · 1 min
总访问量 总访客数