源码剖析
文章平均质量分 51
A夏天夏天悄悄过去留下小秘密
真正的大师永远怀着一颗学徒的心
展开
-
Java集合框架总结,一般详细,拿走不谢
原创 2021-04-23 22:46:51 · 135 阅读 · 1 评论 -
HashSet源码解读!!!!妙得不要不要得!!!!
结论1、HashSet底层是一HashMap2、添加一个元素时,先得到hash值 -> 会转成 -> 索引值3、找到存储数据表table,看这个索引位置是否已经存放的有元素4、如果没有,直接加入5、如果有,调用equals比较,如果相同,就放弃添加,如果不相同,则添加到最后6、在Java8中,如果一条链表的元素个数超过TREEIFY_THRESHOLD(默认是8),并且table的大小 >= MIN_TREEIFY_CAPACITY(默认64),就会进行树化(红黑树)原创 2021-04-01 22:48:28 · 293 阅读 · 0 评论 -
LinkedList源码分析
一、添加结点:add();方法示例代码LinkedList linkedList = new LinkedList();linkedList.add(1);linkedList.add(2);linkedList.add(3);System.out.println("linkedList = " + linkedList);1、首先会进入到无参的构造方法里此时会new出一个linkedList类型的对象,里面有整型遍历size和modCount,结点类型first和last2、将原创 2021-03-29 22:33:58 · 180 阅读 · 0 评论 -
Vector源码分析
实例代码//无参构造器 Vector vector = new Vector(); //有参构造 //Vector vector = new Vector(8); for (int i = 0; i < 10; i++) { vector.add(i); } vector.add("ChanV"); System.out.println("vector = " +原创 2021-03-29 17:14:39 · 109 阅读 · 4 评论 -
ArrayList源码分析,超详细,手把手教你剖析源码
ArrayList底层结构和源码分析一、ArrayList中维护一个Object类型的数组elementData。二、当创建ArrayList对象时,如果使用的是无参构造器,则初始elementData容量为0,第1次添加,则扩容elementData为10,如需要再次扩容,则扩容elementData为1.5倍。1、创建了一个空的elementData数组2、执行list.add(1)先确定是否要扩容(2)然后在执行赋值该方法确定minCapacity(1)第一次扩容为10(1)m原创 2021-03-28 23:17:21 · 515 阅读 · 0 评论