ArrayList
初始化长度为10
底层采用数组实现
通过ArrayList的grow方法我们会发现ArrayList采用的是1.5扩容
Vector jdk1.0提供
底层也是通过数组实现,初始长度也是10 数组扩容是两倍
详细如下图源码
数组依据
初始长度
扩容倍数
新旧数组扩容因子
线程安全实现通过使用SSynchronized关键字实现线程安全
CopyOnWriteList
线程安全多线程推荐使用
通过ReentrantLock来实现线程安全
add方法通过获取锁释放锁保证线程安全
按照添加元素个数进行扩容
LinkedList 底层通过链表实现 transient表示对象序列化时候不进行序列化和反序列化操作