源码分析
夏木炎
个人学习工作记录(只对自己负责),不接受批评,不保证准确,爱看则看。。。
展开
-
集合系列—ArrayList源码分析
本篇分析ArrayList的源码,在分析之前先跟大家谈一谈数组。数组可能是我们最早接触到的数据结构之一,它是在内存中划分出一块连续的地址空间用来进行元素的存储,由于它直接操作内存,所以数组的性能要比集合类更好一些,这是使用数组的一大优势。 但是我们知道数组存在致命的缺陷,就是在初始化时必须指定数组大小,并且在后续操作中不能再更改数组的大小。在实际情况中我们遇到更多的是一开始并不知道要存放多少元素...原创 2018-12-03 10:15:40 · 116 阅读 · 0 评论 -
集合系列—LinkedList源码分析
上篇我们分析了ArrayList的底层实现,知道了ArrayList底层是基于数组实现的,因此具有查找修改快而插入删除慢的特点。本篇介绍的LinkedList是List接口的另一种实现,它的底层是基于双向链表实现的,因此它具有插入删除快而查找修改慢的特点,此外,通过对双向链表的操作还可以实现队列和栈的功能。 LinkedList的底层结构如下图所示。 F表示头结点引用,L表示尾结点引用,链...原创 2018-12-03 10:33:20 · 125 阅读 · 0 评论 -
集合系列—HashMap源码分析
前面我们已经分析了ArrayList和LinkedList这两个集合,我们知道ArrayList是基于数组实现的,LinkedList是基于链表实现的。它们各自有自己的优劣势,例如ArrayList在定位查找元素时会优于LinkedList,而LinkedList在添加删除元素时会优于ArrayList。而本篇介绍的HashMap综合了二者的优势,它的底层是基于哈希表实现的,如果不考虑哈希冲突的话...原创 2018-12-03 10:55:57 · 191 阅读 · 0 评论 -
集合系列—LinkedHashMap源码分析
这篇文章我们开始分析LinkedHashMap的源码,LinkedHashMap继承了HashMap,也就是说LinkedHashMap是在HashMap的基础上扩展而来的。因此在看LinkedHashMap源码之前,读者有必要先去了解HashMap的源码,可以查看我上一篇文章的介绍《集合系列—HashMap源码分析》。 只要深入理解了HashMap的实现原理,回过头来再去看LinkedHash...原创 2018-12-03 11:10:08 · 155 阅读 · 0 评论
分享