
JDK源码
JDK源码学习
Ruby丶彬
编程语言是程序员的表达方式,而架构是程序员对世界的认知
展开
-
JDK源码深入学习之HashSet
HashSet概述1.HashSet底层基于HashMap2.HashSet存放的元素无序不重复3.HashSet继承AbstractSet类,实现了set,Cloneable,java.io.Serializable接口4.HashSet线程不安全类图:HashSet源码解读1.HashSet成员变量HashSet直接使用HashMap存放数据,因HashMap的Key必须唯一,所以可以将我们需要存放的数据放到Key保证不重复,而所有的value对应一个内部的对象PRESENT原创 2020-07-06 19:20:56 · 151 阅读 · 0 评论 -
JDK源码深入学习之Vector
Vector概述1.Vector是一个矢量队列,底层基于数组实现2.Vector继承于AbstractList,实现了List, RandomAccess, Cloneable这些接口3.Vector 实现了Cloneable接口,即实现clone()函数。它能被克隆。4.Vector里面的元素都是有序可重复的5.Vector 是线程安全的,但也导致了性能要低于ArrayList由于Vector与ArrayList极其的相似,这里做一个对比:ArrayList源码解读相同点:1.底层都是数组原创 2020-07-06 12:00:45 · 184 阅读 · 0 评论 -
JDK源码深入学习之LinkedList
LinkedList概述LinkedList:链表实现的线性表(双链表)LinkedList:有序可重复LinkedList:可以为nullLinkedList:查询慢,增删快LinkedList:线程不安全LinkedList:实现了栈和队列的操作方法,因此也可以作为栈、队列和双端队列来使用LinkedList:继承自AbstractSequentialList,实现了List,Deque,Cloneable,Serializable接口LinkedList源码解读1.LinkedLi原创 2020-07-03 20:42:24 · 185 阅读 · 0 评论 -
JDK源码深入学习之ArrayList
ArrayList概述ArrayList:是一个可以动态改变大小的数组。ArrayList继承于AbstractList,实现了List, RandomAccess, Cloneable, java.io.Serializable这些接口。设计初衷就是为了解决数组大小不可动态拓展的局限性。ArrayList因为直接用的数组下标取的元素,所以查询效率较高。但是由于增删涉及数组元素的移动,所以增删效率比较低ArrayList是线程不安全的ArrayList继承关系图:ArrayList源码解读一原创 2020-07-02 16:58:05 · 204 阅读 · 0 评论