底层结构分析上面这两张图分别画出了JDK 1.7、1.8底层数据结构,在JDK 1.7、1.8中都使用 了散列算法,但是在JDK 1.8中引入了红黑树,在链表的长度大于等于8并且hash桶的长度大于等于64的时候,会将链表进行树化。这里的树使用的数据结构是红黑树,红黑树是一个自平衡的二叉查找树,查找效率会从链表的o(n)降低为o(logn),效率是非常大的提高。为什么不将链表全部换成二叉树呢?这
转载
2021-06-03 21:37:31
226阅读
jdk1.8源码分析 扫地生是根据这个流程分析的。 具体的分析代码代码放在gitee仓库了,分析源码持续更新中 jdk1.8源码分析仓库 ...
转载
2021-08-04 10:07:00
294阅读
2评论
基于jdk1.8LinkedList源码分析,学习底层数据结构、算法、设计理念、进制转换、代码艺术
原创
2019-08-05 19:57:48
2651阅读
点赞
基于jdk1.8AQS源码分析,学习底层数据结构、算法、设计理念、进制转换、代码艺术、并发编程、独占共享锁的乐趣
原创
2019-08-08 20:24:46
3206阅读
点赞
文章目录ConcurrentHashMap数据结构类的继承关系类的内部类重要的属性类的
原创
2022-11-01 11:11:34
71阅读
ArrayList简介ArrayList 是一个数组队列,相当于 动态数组。与Java中的数组相
原创
2022-11-01 11:12:04
117阅读
基于jdk1.8ReentrantLock源码分析,学习底层数据结构、算法、设计理念、进制转换、代码艺术、并发编程、独占共享锁的乐趣、公平锁非公平锁的竞争
原创
2019-08-15 16:44:30
2345阅读
点赞
ArrayList底层是基于 数组 实现的,并且支持 动态扩容 的动态数组(变长的集合类)。ArrayList允许空值和重复的元素,当向ArrayList中添加元素数量大于其底层数组容量时,会通过 扩容机制 重新生成一个容量更大的数组。另外,由于ArrayList底层数据结构是数组,所以保证了在O(1)复杂度下完成随机查找操作。
转载
2021-07-09 09:54:58
140阅读
ArrayList简介 ArrayList 是一个数组队列,相当于 动态数组。与Java中的数组相比,它的容量能动态增长。它继承于AbstractList,实现了List, RandomAccess, Cloneable, java.io.Serializable这些接口。 ArrayList 继承
转载
2019-06-25 12:15:00
108阅读
HashMap(JDK1.8)源码解析2019-08-08 09:28:16 ThinkWon 阅读数 710更多 文章目录 简介 特点 数据结构 JDK1.8之前 JDK1.8之后 JDK1....
转载
2019-10-29 07:53:00
109阅读
2评论
String源码分析从一段代码说起:public void stringTest(){ String a = "a"+"
原创
2022-11-01 11:10:48
83阅读
Vector简介Vector也是基于数组实现的,是一个动态数组,其容量能自动增长。
原创
2022-11-01 11:10:55
67阅读
LinkedList简介LinkedList 是一个继承于AbstractSequentialList的双向链表。它
原创
2022-11-01 11:11:57
83阅读
本文按以下顺序叙述: HashMap的感性认识. 官方文档中对HashMap介绍的解读. 到源码中看看HashMap这些特性到底是如何实现的. 把源码啃下来有一种很爽的感觉, 相信你读完后也能体会到~ 如发现有误, 欢迎指出. 在开始之前, 先通过图例对HashMap建立感性认识 - 如果不清楚哈希
原创
2021-05-07 14:19:40
696阅读
作为开发人员,千万不能停留在实现功能上,一定要提升到性能方面上。这需要
原创
2022-10-09 11:05:23
96阅读
JDK1.8 ConcurrentHashMap 源码分析jdk1.8 容器初始化源码分析在jdk8的ConcurrentHas
原创
2022-09-09 10:58:19
142阅读
HashMap简介HashMap基于哈希表的 Map 接口的实现。此实现提供所有可选的
原创
2022-11-01 11:11:39
78阅读
HashMap是求职面试中名副其实的“明星”,基本上每一加公司的面试多多少少
原创
2022-11-01 11:11:48
79阅读