浅谈JDK1.8中ArrayList的动态扩容
简介
ArrayList的底层,实际就是一个可以动态扩容的Object数组,它继承了AbstractList这个抽象类,实现了List, RandomAccess, Cloneable, java.io.Serializable四个接口。其中,值得一提的是RandomAccess这个接口。RandomAccess是一个标记接口,用于标明实现该接口的List支持快速随机访问,主要目的是使算法能够在随机和顺序访问的list中表现的更加高效(当要实现某些算法时,会判断当前类是否实现了RandomAccess接口)。
RandomAccess:
构造器
ArrayList()
ArrayList(Collection<? extends E> c)
ArrayList(int initialCapacity)
无参构造器
我们先来看无参构造器的源码