ArrayList 扩容详解,扩容原理

ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长。
ArrayList不是线程安全的,只能用在单线程环境下。
实现了Serializable接口,因此它支持序列化,能够通过序列化传输;
实现了RandomAccess接口,支持快速随机访问,实际上就是通过下标序号进行快速访问;
实现了Cloneable接口,能被克隆。

动态扩容

一 初始化
首先有三种方式来初始化:
publicArrayList();
默认的构造器,将会以默认的大小来初始化内部的数组
publicArrayList(Collection