Integer源码解析
构造函数123456789private final int value;public Integer(int value) { this.value = value;}public Integer(String s) throws NumberFormatException { this.value = parseInt(s, 10);}
从构造方法中我们可以知道,初始化一个 Integer 对象的时候只能创建一个十进制的整数。
Integer 转 String转化为 16 进制/8 进制/2 进制方法如下:
123456789101112public static String toHexString(int i) { return toUnsignedString0(i, 4);}public static String toOctalString(int i) { return toUnsignedString0(i, 3);}public static String to ...
ArrayList源码解析
基础结构12345678910111213141516171819202122232425262728293031323334353637383940414243444546// 默认初始化容量,私有常量private static final int DEFAULT_CAPACITY = 10;// 初始容量设为0时的数组,私有常量private static final Object[] EMPTY_ELEMENTDATA = {};// 未设置初始容量时的空数组,与上一步拆分以在第一个元素添加时确定数组大小,私有常量private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};// 存放数据,如果 elementData == DEFAULTCAPACITY_EMPTY_ELEMENTDATA,那么第一个数据时,容量为默认容量10transient Object[] elementData; // non-private to simplify nested cla ...
HashMap源码解析
基本结构123456789101112131415161718192021222324252627282930// 默认容量16static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16// 默认最大容量static final int MAXIMUM_CAPACITY = 1 << 30;// 默认负载因子0.75 16*0.75 = 12 即容量为13时扩容static final float DEFAULT_LOAD_FACTOR = 0.75f;// 树转化临界点8 链表容量为9时扩容static final int TREEIFY_THRESHOLD = 8;// 树退化临界点6 扩容时如果链表容量<=6,退化为链表static final int UNTREEIFY_THRESHOLD = 6;// 树容量 转换为红黑树时,如果table长度小于64,扩容static final int MIN_TREEIFY_CAPACITY = 64;// 链表节点static class N ...