arrayList源码
jdk1.7下 arrayList源码
1.先创建arrayList对象,底层使用空参构造器(空参构造里初始数组长度为10)
2.向数组添加元素
3.当添加的元素>10(初始容量)的时候,进行数组 扩容grow(…)
4.(扩容原理)扩容1.5倍
总结:
jdk1.8下 arrayList源码
1.创建arrayList时候,调用无参构造,相比jdk1.7,并未初始化数组长度
此时未指定数组长度,节省了内存
2.接下来是add方法,在该方法创建数组,初始长度为10,扩容原理同 jdk1.7
总结:
附
java中,>> 和 >>> :
> >:带符号右移。正数右移高位补0,负数右移高位补1
> > >:无符号右移。无论是正数还是负数,高位通通补0
对于10 >> 1 ,10的二进制是1010, 右移高位补0之后是0101,对应的是十进制是5,所以 下面结果是15=10+5,相当于扩容1.5倍
linkedList源码
jdk1.7和1.8无区别
1 无参构造,其中有两个‘节点’属性,Node 是元素/数据 存储的基本单位
对于Node节点:
2.调用add方法时,往数组中添加元素
总结: