![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java学习
乌龙院里扫地的
专注于软件开发和大数据
展开
-
java集合类源码详解-LinkedList(1)-基于JDK8
从今天开始 终于进入了LinkedList的学习(本人学习的是jdk8)。LinkedList跟ArrayList还是有很多地方相似的,先看看这个类的大概结构。 LinkedList 继承的抽象类是AbstractSequentialList ,而 AbstractSequentialList 是继承自 AbstractList 。AbstractList是什么呢?它是Array...原创 2018-12-05 16:36:51 · 195 阅读 · 0 评论 -
java集合类源码详解-ArrayList(7)-基于JDK8
现在我们接着看ArrayList的set()方法下面是测试代码点击下一步,rangeCheck(index),之前的博客见了很多次了,就是判断这个索引是否比当前数据的实际数据数量小大于等于都是不可以的,现在我们只有0号,1号索引有数据,size=2。所以index不能大于等于2,。说白了set()这个函数是在已经有数据的地方替换,不能在没数据的地方去插数据。这个函数的执行步...原创 2018-12-04 10:18:15 · 153 阅读 · 0 评论 -
java集合类源码详解-ArrayList(8)-基于JDK8
这里是一些比较简单的ArrayList源码里面的函数remove(int ):移除指定位置的数fastremove(int):同样是移除指定位置的数,但是与remove(int)相比跳过检查,不返回被删除的数 补充下上次ArrayList的迭代遍历这种遍历方式在遍历的时候不能让其他线程或者本身的ArrayList来改变(通过add()或者remove方法等)容器,在迭代过程中要...原创 2018-12-04 10:17:58 · 203 阅读 · 0 评论 -
java集合类源码详解-ArrayList(5)-基于JDK8
上次,测试了java集合类支持遍历方式的效率比较,今天再通过断电调试,去ArrayList底层的迭代器做了什么。首先在迭代器这里打上断电,(在实际中变量ArrayList最后别用迭代器,因为他很慢)可以看到这个iterator()方法返回值是一个迭代器,函数体是return new Itr()点击下一步。可以看到Itr是一个ArrayList里面的一个类,从右边类结构图可以看到...原创 2018-11-22 11:43:32 · 212 阅读 · 0 评论 -
java集合类源码详解-ArrayList(4)-基于JDK8
集合的遍历,在项目中用的非常多,ArrayList支持三种遍历方法,迭代器遍历,for循环,get()方法随机访问。由于ArrayList底层是数组,肯定随机方法的速度是很快的,今天开始测试ArrayList的测试方法。先创建一个学生类,属性有年龄,姓名,成绩,然后写出相应的get,set方法。然后创建10万个对象,把这个10万个对象循环,add()到ArrayList对象中。这里...原创 2018-11-22 10:32:44 · 104 阅读 · 0 评论 -
java集合类源码详解-ArrayList(6)-基于JDK8
前面忘了说 博客对于ArrayList的源码剖析 针对的是JDK8ArrayList的常用方法还没有测试,这次来测试阅读ArrayList的核心方法,当我们添加元素,超过了容器的初始容量底层会发生什么,然后测试这些核心方法。 其实之前已经看过这种情况的源码了,其实就是底层的ensureExplicitCapacity()来判断是否扩容,这个方法翻译成中文意思是:确保精确容量。这次再...原创 2018-11-23 16:30:16 · 142 阅读 · 0 评论 -
java集合类源码详解-ArrayList(3)-基于JDK8
之前已经学习过了两个构造函数,和扩容缩容的函数ArrayList总共有三个构造函数,现在学习最后一个。java集合类源码详解-ArrayList(1)java集合类源码详解-ArrayList(2)同样是写了测试代码,点击dbug点击下一步。这个构造函数,是创建一个集合,并且把一个集合的元素,添加到这个集合源码这里的形参是 Collection<? exten...原创 2018-11-21 20:16:54 · 281 阅读 · 0 评论 -
java集合类源码详解-ArrayList(2)-基于JDK8
上次关于ArrayList的结构没有做总结。这次还是补充在自己博客里面吧。ArrayList继承自一个抽象类。实现了四个接口。AbstractList继承自AbstractCollection。AbstractCollection继承自Object。ArrayList底层结构是数组。所以其特点就是,查询(随机访问)快,增删慢(因为每删掉或者增加数组中的一位或者多位,这个位置后面的数都会...原创 2018-11-15 17:21:07 · 156 阅读 · 0 评论 -
java集合类源码详解-ArrayList(1)-基于JDK8
最近在疯狂的补基础 在java中 最重要的知识之一 非集合类莫属。这次在学习java集合类源码,采用的是传统的方法,断点调试和写测试代码。由于是刚开始接触java集合类源码。所以一开始只写了两句代码来测试,毕竟源码学习是很缓慢的过程。只能慢慢的啃。在阅读源码前,我是把ArrayList和AbstractArrayList都拷贝出来了(不拷贝出来是不能对源码修改的),而且在很多方法前都...原创 2018-11-13 16:05:24 · 505 阅读 · 3 评论