自己理解的源码系列
方元之外
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java util HashSet源码
HashSet hashset名字是hashset,实际上就是一个hashmap,披着羊皮的狼。 基本属性 map是重点,hashset在hashmap上套个壳子 PERSENT代表hashmap的value,占位用。 各种方法也是调用map对象的方法 ...原创 2019-11-11 17:42:06 · 149 阅读 · 0 评论 -
java util LinkedList源码
定义及关系 双向链表,实现List和Deque Deque保持链表的特性,如-getFirst,pollFirst方法 属性值 三个重要的属性,size个数,first头结点,last尾节点 Node对象 节点对象为Node,每个节点都是一个node对象,都有三个属性,本身的值item,上一个节点prev,下一个节点next。 基本...原创 2019-11-11 11:49:20 · 181 阅读 · 0 评论 -
list remove(Object o) 坑之一
如果这个o对象不是 null,那么会通过equals来比较。默认情况下equals比较的是地址。 换言之-如果传进来的o对象的属性内容一模一样,但是地址不一样。这样就会删除不掉。 ----------------------------------------------------------------------------------------------------- 情况1...原创 2019-11-08 17:32:32 · 3819 阅读 · 0 评论 -
java util arraylist 源码
先看继承和继承关系 RandomAccess:support fast (generally constant time) random access-快速随机访问 常见的构造方法 无参数,指定一个默认final类型的空数组 指定大小的构造方法 ------------------------------------------ ...原创 2019-11-08 16:40:19 · 509 阅读 · 0 评论 -
java 快速失败(fail-fast)和安全失败(fail-safe)
参考https://www.cnblogs.com/songanwei/p/9387745.html java中的 快速失败和安全失败 java util包中的集合如 arraylist linkedlist中都有一个modCount属性。这是一个严格的计数器,这个字段被迭代器使用。如果这个数字被意外的修改,就会抛出异常,这是一个fail-fast表现。 在用迭代器遍历...原创 2019-11-07 22:51:35 · 635 阅读 · 0 评论 -
hashmap--为什么HashMap的桶数量是2的幂次方
hahsmap默认桶的大小是16. 初始化hashmap的时候看构造方法,会发现传入的初始化initialCapacity桶大小会被做一次转成2的幂的操作。 hashmap扩容 resize的时候也会乘2 为什么桶的大小要是2的幂? 为的是均匀散列 在jdk1.7 里面 索引的计算公式为 index=(capacity-1)&...原创 2019-10-23 09:48:47 · 842 阅读 · 0 评论 -
java.lang String 源码
contains 方法就是调用常见的indexof计算索引的方法。如果这个字符串存在,就会返回索引,大于-1 然后和-1做一个boolean返回值的比较 ---------------------------------------------------------------------------------------------------------...原创 2019-08-06 23:16:34 · 221 阅读 · 0 评论 -
java lang包 AbstractStringBuilder 源码
char [] value 指存放字符的数组 int count 指存入字符的个数 int capacity 指value数组的长度 返回字符个数 返回value数据长度 扩容。如果期望的minimumcapacity长度大于 当前数组的长度,那么就对当前数据扩容 append追加方法。 ...原创 2019-08-14 10:12:34 · 363 阅读 · 3 评论 -
java-lang object 源码
clone是克隆方法,直接调用会使用浅克隆。 equals 是比较方法。默认是比较地址一般需要重写一下。 finalize 是提醒回收垃圾 hashcode是返回对象的哈希码 notify,notifyAll,wait 是等待唤醒线程之类的 tostring默认返回类的名称(权限定名称)加上@,然后 加上此类的哈希码的16进制 ...原创 2019-08-07 15:24:45 · 146 阅读 · 0 评论
分享