godtrue
posts - 229,comments - 165,views - 209万

随笔分类 -  分析轮子

向优秀的代码学习
分析轮子(十)- HashMap.java 之概念梳理
摘要:注:玩的是JDK1.7版本 一:还是原来的风格,先上一下类的继承关系图,这样能够比较清楚的知道此类的相关特性 二:HashMap.java 的代码比较难看,所以,我看了几天,写的话也分开来写,这样能表达的更清晰,HashMap.java 的底层数据结构,本质是单向链表数组,如下所示是单向链中节点的结 阅读全文
posted @ 2018-09-29 13:01 godtrue 阅读(722) 评论(0) 推荐(0) 编辑
分析轮子(九)- Cloneable.java
摘要:注:玩的是JDK1.7版本 一:Cloneable.java 接口也是标记接口,所以,它没有任何方法和属性,实现此接口表示的意思是:可以调用 Object.java 类的 clone() 方法,进行简单的属性到属性之间的克隆,如果没有实现此接口的话调用 Object.java 类的 clone() 阅读全文
posted @ 2018-09-18 18:10 godtrue 阅读(402) 评论(0) 推荐(0) 编辑
分析轮子(八)- List.java 各种遍历方式及遍历时移除元素的方法
摘要:注:玩的是JDK1.7版本 1:先尝栗子,再分析,代码简单,注释清晰,可自玩一下 2:注意事项 1)按如下方式循环遍历 list 集合时,移除元素,会抛出 java.lang.IndexOutOfBoundsException 2)按如下方式循环遍历 list 集合时,移除元素,会抛出 java.u 阅读全文
posted @ 2018-09-13 21:08 godtrue 阅读(835) 评论(0) 推荐(0) 编辑
分析轮子(七)- RandomAccess.java
摘要:1:还是先上一个类的继承关系比较图吧! 2:看一下 RandomAccess.java 的源码,空空如也,什么都没有,那她有什么用处呢? 有点磕磕巴巴,阅读了源码中的注释,大概讲解了一下 RandomAccess.java 接口的作用,它是一个标记接口,表示实现它的类支持快速随机访问,通过上图的对比 阅读全文
posted @ 2018-09-12 18:11 godtrue 阅读(447) 评论(0) 推荐(0) 编辑
分析轮子(六)- LinkedList.java
摘要:注:玩的是JDK1.7版本 一:先上类的继承结构图 二:再看一下他的底层实现数据结构 三:然后从源码中找点好玩的东西 1)双向链表的结构构成元素,头指针、尾指针、节点信息(前向指针、后向指针、节点信息) 2)在链表尾部添加新节点,只需要改变链表尾指针的指针指向就可了,所以,性能相对 ArrayLis 阅读全文
posted @ 2018-09-11 19:46 godtrue 阅读(330) 评论(0) 推荐(0) 编辑
分析轮子(五)- Vector.java
摘要:注:玩的是JDK1.7版本 一: 先上类图,从类图上看和 ArrayList.java 非常相像,可查看 分析轮子(一)-ArrayList.java 二:然后看源码,发现和 ArrayList.java 各种实现上也非常的相像,他们的底层数据结构都是数组,并且都可以动态扩展,所以,不再重述了,有兴 阅读全文
posted @ 2018-09-10 21:09 godtrue 阅读(331) 评论(0) 推荐(0) 编辑
分析轮子(四)- 我也玩一把 Serializable.java
摘要:前言:在写 分析轮子(一)-ArrayList.java 的时候曾经下过一个结论 “实现Serializable接口,表示ArrayList是可序列化的”,这个结论是以往学习的经验所得,并且平时在编程的时候也遇到过其他的问题,比如:在写 IDEA使用笔记(八)——自动生成 serialVersion 阅读全文
posted @ 2018-09-09 22:52 godtrue 阅读(431) 评论(0) 推荐(0) 编辑
分析轮子(三)- 十进制整数怎么变成无符号二进制的整数的
摘要:前言:在 分析轮子(二)- << ,>>,>> (左移、右移、无符号右移)的时候发现十进制数转二进制数的时候,负数的位数是够的,比如:负整数 -15 的二进制表示是:11111111111111111111111111110001 ,但是 正整数 15 的二进制表示是:1111,抱着好奇心,我看了一 阅读全文
posted @ 2018-09-08 20:21 godtrue 阅读(983) 评论(0) 推荐(0) 编辑
分析轮子(二)- << ,>>,>> (左移、右移、无符号右移)
摘要:前言:写 分析轮子(一)-ArrayList.java 的时候看到源码中有 int newCapacity = oldCapacity + (oldCapacity >> 1); 这样的代码,以前也学习过左移、右移,无符号右移三类移位运算符,不过忘记了具体的变化规则,于是就实验了一把,便有了本篇博文 阅读全文
posted @ 2018-09-06 09:29 godtrue 阅读(860) 评论(0) 推荐(0) 编辑
分析轮子(一)-ArrayList.java
摘要:前言:之前也看过一些JDK源码,不过没有留下痕迹,经久年月就淡忘了,现在的时机也差不多了,想再看一次,并且记录下来自己的感想,于是从自己使用最多最熟悉的地方开始!并且看的过程中,我希望自己思考一下如下的问题: 1:如果让我设计,我怎么玩? 2:原作者为什么这样设计? 3:它的底层实现是什么玩意?有什 阅读全文
posted @ 2018-09-05 08:53 godtrue 阅读(692) 评论(0) 推荐(1) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示