一起看JDK源码吧
JDK版本迭代比较快,以比较稳定广泛应用的JDK1.8进行源码学习分析
@另维吖
种一棵树最好的时间是十年前,其次是现在。
展开
-
Set 集合的源码分析
Set 接口是一种不包括重复元素的Collection,它维持它自己的内部排序,所以随机访问没有任何意义。不包含重复元素的集合。并且最多一个空元素。继承的层次结构HashSet实现 Cloneable,可以调用 Objec.Clone() 方法实现 Serializable,该类具有序列化功能域信息private transient HashMap<E,Object> map;//定义一个Object对象作为HashMap的valueprivate static final原创 2020-08-09 20:57:43 · 325 阅读 · 0 评论 -
HashMap 源码分析只读这一篇就够了
HashMap 简介HashMap 是基于 哈希表的 Map 接口实现的,它存储内容是键值对<key,value> 映射。此类不保证映射的顺序,假定哈希函数将元素适当的分布在各桶之间,可为基本操作(get 和 put) 提供稳定的性能。数据结构1> HashMap 在 JDK1.8 之前的存储原理...原创 2020-08-04 16:04:50 · 176 阅读 · 0 评论 -
LinkedList增删该查操作的源码分析
文章目录LinkedList 数据结构继承结构源码分析类的属性构造方法无参构造带参构造内部类常用方法添加操作remove(Object o)get(index)indexOf(Object o)总结LinkedList 数据结构底层使用双向链表结构,即有一个头结点和尾结点,意味着可以从头开始正向遍历,或者从尾逆向遍历,并且可以直接针对头部和尾部进行操作由于使用链表实现,添加和删除性能好、查询比较低。由于实现了Deque,可以做队列或双端队列,栈,完成相应操作。在执行任何操作的时候都必须先遍历此列表原创 2020-08-01 22:48:15 · 513 阅读 · 0 评论 -
ArrayList 增删改查等操作的源码分析
ArrayList 的数据结构ArrayList 底层的数据结构就是数组,数组元素类型为 Object 类型,即可以存放所有类型数据。对该类的实例的所有操作底层都是基于数组的。实际大小:size容量:CAPACITY继承结构ArrayList 是直接继承自 AbstractList,为什么不是 List?这里的设计思想:我们知道接口中的方法都是抽象的,而抽象类中可以有抽象方法,还可以有具体的方法。这里是让 AbstractList 实现接口中通用方法,而它具体的子类 ArrayList 可原创 2020-08-01 16:43:29 · 1014 阅读 · 0 评论 -
最全String 相关知识总结
文章目录String 类的特点--以final修饰的类equals() 和 == 比较字符串CompareTo() 比较两个字符串String 和 StringBuilder、StringBuffer 的区别String 和 JVM编译器对字符串拼接的优化String 类的特点–以final修饰的类1> 以 JDK1.8 版本来看,String 内部实际存储结构为 char 数组,部分源码:public final class String implements java.io.Serializ原创 2020-05-22 20:56:28 · 273 阅读 · 0 评论 -
基于JDK1.8 HashMap的底层实现原理及版本迭代后的优化
文章目录HashMap 底层是如何让实现的?在JDK1.8中都做了哪些优化?基于JDK1.8来看HashMap源码什么是加载因子?加载因子为什么是 0.75?HashMap 中查询方法HashMap 中的新增方法HashMap中的扩容方法HashMap 死循环分析HashMap 底层是如何让实现的?在JDK1.8中都做了哪些优化?在 JDK1.7 中 HashMap 是以数组加链表的形式组成的,JDK1.8之后新增了红黑树的组成结构,当链表大于 8 并且容量大于 64 时,链表结构会准换成红黑树结构,他原创 2020-05-27 23:43:25 · 160 阅读 · 0 评论