ArrayList源码分析

简单介绍
ArrayList本质上也是继承于抽象类AbstractList,且实现List、随机数、克隆、以及序列化的Serializable。

常量定义
1.初始化大小 容量为10
2.Object[] EMPTY_ELEMENTDATA 动态数组,用来保存空实例

重要的几个方法
1.trimToSize。ArrayLsit每次申请空间是按照1.5倍+1来申请的,内存不够的时候可以使用这个方法来减少多出来的一些空间。
2.ensureCapacity-ensureCapacityInternal-ensureExplicitCapacity。
扩容方法,如果参数大于低层数组长度的1.5倍,那么这个数组的容量就会被扩容到这个参数值,如果参数小于低层数组长度的1.5倍,那么这个容量就会被扩容到低层数组长度的1.5倍。
3.JDK1.8后,增加了许多方法。用于并行计算的spliterator, 分割数组的SubList等。

你可能感兴趣的:(ArrayList源码分析)