ArrayList的底层操作机制源码分析(重点,难点)
- ArrayList中维护了一个Objec类型的数组elementData
transient Object[] elementData; //transient 表示瞬间短暂的,表示该属性不会被序列化,串行化
- 当创建ArrayList对象时,如果使用的是无参造器,则初始elementalData容量为0,第1次添加,则扩容elementData为10,如需要再次扩容,则扩容elementData为1.5倍
- 如果使用的是指定大小的构造器,则初始elementData容量为指定大小,如果需要扩容,则直接扩容elementData为1.5倍
建议自己去debug ArrayList的创建和扩容的流程