ArrayList的底层操作机制源码分析(重点,难点)

    1. ArrayList中维护了一个Objec类型的数组elementData

    transient Object[] elementData; //transient 表示瞬间短暂的,表示该属性不会被序列化,串行化

    1. 当创建ArrayList对象时,如果使用的是无参造器,则初始elementalData容量为0,第1次添加,则扩容elementData为10,如需要再次扩容,则扩容elementData为1.5倍
    2. 如果使用的是指定大小的构造器,则初始elementData容量为指定大小,如果需要扩容,则直接扩容elementData为1.5倍

    建议自己去debug ArrayList的创建和扩容的流程

    image.png
    image.png
    image.png
    image.png