
jdk源码阅读
whoami_I
这个作者很懒,什么都没留下…
展开
-
jdk源码阅读之Object与Cloneable
1、Object(1)clone方法,是否可以克隆protected native Object clone() throws CloneNotSupportedException;这个方法是个native方法,是调用系统底层c/c++代码来实现拷贝复制的,这个方法抛出异常,Object子类如何调用clone方法呢?就是要实现Cloneable接口,通过查看Cloneable接口可以发现这个...原创 2019-01-04 11:12:22 · 238 阅读 · 0 评论 -
jdk源码阅读之ArrayList
ArrayList是一种集合,对于集合的操作不外乎增删查改这么几种,下面就从这几个方面来剖析ArrayList的源代码。1. 增public boolean add(E e) { ensureCapacityInternal(size + 1); // Increments modCount!! elementData[size++] = e; ...原创 2019-01-08 15:23:30 · 142 阅读 · 0 评论 -
jdk源码阅读之Arrays
Arrays实现了数组常见的一些操作,比如:排序、数组拷贝等。排序sortArrays类为了通用性,对方法进行了大量的重载,在这里只讲通用的。public static void sort(Object[] a) { if (LegacyMergeSort.userRequested) legacyMergeSort(a); e...原创 2019-01-08 10:54:41 · 241 阅读 · 0 评论 -
jdk源码阅读之StringBuffer与StringBuilder
StringBuffer与StringBuilder非常类似,两者的很多实现方式上都是一样的,先看两者的继承层次public final class StringBuilder extends AbstractStringBuilder implements java.io.Serializable, CharSequence{...}public final class St...原创 2019-01-07 18:58:17 · 191 阅读 · 0 评论 -
jdk源码阅读之String
String类域private final char value[];private int hash; // Default to 0private static final long serialVersionUID = -6849794470754667710L; private static final ObjectStreamField[] serialPersistentFi...原创 2019-01-07 14:47:45 · 172 阅读 · 0 评论 -
jdk源码阅读之BufferedReader与Reader
在java里面,把IO大致分成了两类,一类基于字符流,另一类基于字节流.所有基于字符流的类的基类为Reader和Writer,所有基于字节流的类的基类为InputStream和OutputStream.当然这两个区别不是完全的,InputStreamReader和OutputStreamWriter是这两条线的桥梁,InputStreamReader将输入的字节流按照指定的编码转换成字符流....原创 2019-01-11 20:09:19 · 893 阅读 · 0 评论 -
jdk源码阅读之Integer
Integer final static char[] digits = { '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , 'a' , 'b' , 'c' , 'd' , 'e' , 'f' , 'g' , 'h' , 'i' , 'j' , 'k' ...原创 2019-01-07 09:35:54 · 246 阅读 · 0 评论 -
jdk源码阅读之HashSet
HashSet底层使用了HashMap实现,所有的添加查找操作都是HashMap的添加查找,因此先了解HashMap是很有必要的.先看构造函数public HashSet() { map = new HashMap<>(); }public HashSet(int initialCapacity, float loadFactor) { m...原创 2019-01-11 11:43:38 · 184 阅读 · 0 评论 -
jdk源码阅读之HashMap(二)
HashMap的遍历HashMap对应有三种遍历方式,分别是条目遍历(可理解为节点遍历)、键遍历、值遍历.final class KeyIterator extends HashIterator implements Iterator&lt;K&gt; { public final K next() { return nextNode().key; } ...原创 2019-01-11 10:59:42 · 160 阅读 · 0 评论 -
jdk源码阅读之HashMap(一)
HashMap是一个散列表,这个散列表包含的散列桶的格式为2^n个,而且必须满足这个条件,原因在getNode(int hash, Object key)这个方法的分析中给出,如果构造时传入的参数不满足这个条件,内部会做相应的调整,以满足,HashMap的构造函数如下:public HashMap(int initialCapacity, float loadFactor) { ...原创 2019-01-10 20:13:22 · 209 阅读 · 0 评论 -
jdk源码阅读之LinkedList
和ArrayList相似,LinkedList也是实现了List接口,但是LinkedList是用链表实现的,而ArrayList是用数组实现的。两者的优缺点基本就是链表和数组的优缺点。先看LinkedList声明public class LinkedList&lt;E&gt; extends AbstractSequentialList&lt;E&gt; implements...原创 2019-01-08 18:01:07 · 132 阅读 · 0 评论