- 博客(5)
- 收藏
- 关注
原创 Java集合源码分析(四):ArrayList vs LinkedList
ArrayList vs LinkedList 源码学习PS:想了解两者区别的可直接看第三部分-ArrayList vs LinkedList目录ArrayList vs LinkedList 源码学习一、ArrayList1. 三个特性2. 四个参数3. 几个方法add()remove()set()get()rangeCheck()4. 几个注意点ArrayList不能在for遍历中修改元素,而要用迭代器!!!ArrayList的线程安全版本ArrayList的容量二、LinkedList1. 特性
2021-12-05 19:46:12 759 1
原创 Java集合源码分析(三):CopyOnWriteArrayList
CopyOnWriteArrayList 源码学习特性CopyOnWriteArrayList 是 ArrayList的并发优化版本,采用了CopyOnWrite策略,在修改时先复制一个快照来修改,改完再让内部指针指向新数组。因为对快照的修改对读操作来说不可见,所以只有写锁没有读锁,加上复制的昂贵成本,典型的适合读多写少的场景。CopyOnWriteArrayList 实现了List、RandomAccess、Cloneable以及Serializable接口CopyOnWriteArr
2021-12-02 20:11:34 302
原创 Java集合源码分析(二):ConcurrentHashMap
ConcurrentHashMap 源码学习建议先了解HashMap的底层源码,再来学习ConcurrentHashMap ,效率会快很多。这里给出本人对于HashMap的一点理解。《HashMap 源码学习》特性ConcurrentHashMap继承了AbstractMap类,实现了ConcurrentMap和Serializable接口ConcurrentHashMap线程安全(jdk1.7:segment分段锁;jdk1.8:node+cas+synchronized)七个重要参数
2021-11-30 19:33:11 565
原创 Java集合源码分析(一):HashMap
HashMap源码学习特性HashMap继承了AbstractMap类,实现了Map、Cloneable、Serializable接口。HashMap无序,即不会记录数据插入顺序。HashMap线程不安全。HashMao最多允许一条数据的key为nullHashMap的查找修改时间复杂度为O(1)六个重要参数数组初始化长度 DEFAULT_INITIAL_CAPACITY = 1 << 4(16)数组最大长度 MAXIMUM_CAPACITY = 1 << 3
2021-11-29 19:44:02 305 1
原创 Java锁源码分析(一):AQS & ReentrantLock
AQS的源码学习欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markd
2021-11-21 20:31:14 400
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人