![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
k_every
这个作者很懒,什么都没留下…
展开
-
HashMap源码解析
JDK1.8对HashMap进行了比较大的优化,底层实现由之前的“数组+链表”改为“数组+链表+红黑树”,JDK1.8的HashMap的数据结构如下图所示,当链表节点较少是仍然是以链表存在,当链表节点较多是(大于8)会转为红黑树。先了解下面几点,更好的理解HashMap的源码头节点指的是table表上索引位置的节点,也就是头节点。根节点(root节点)是指红黑树最上面的哪个节点,也就是没...原创 2019-03-20 15:44:10 · 441 阅读 · 0 评论 -
ArrayList源码解析
ArrayList 是一个数组队列,相当于 动态数组。与Java中的数组相比,它的容量能动态增。ArrayList中的操作不是线程安全的!基本属性private static final int DEFAULT_CAPACITY = 10; // 初始容量10 private static final Object[] EMPTY_ELEMENTDATA = {}; // 空实例数组...原创 2019-03-20 22:03:09 · 330 阅读 · 0 评论 -
LinkedList源码解析
LinkedList底层的数据结构是基于双向循环链表的,既然是双向链表,那么必定存在一种数据结构——我们可以称之为节点,每个节点所对应的类是Entry的实例。Entry中包含成员变量: previous, next,element。其中,previous是该节点的上一个节点,next是该节点的下一个节点,element是该节点所包含的值。基本属性transient int size = 0; ...原创 2019-03-20 23:11:12 · 235 阅读 · 0 评论