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