ArrayList本质上是一组对象数组,ArrayList有三种构造方法 1.指定长度创建ArrayList,2.默认长度为10创建.3,用旧的集合创建一个ArrayList.
对ArrayList的操作,都会被modCount记录下来
ArrayList的增长策略:ensureCapacity()方法
先获取旧的数组长度,和传进来的长度比较,如果旧的长度不够用了,就用公式(oldCapacity*3)/2+1来获取新的长度,如果通过公式算出来的长度还是小于传进来的长度,就使用传进来的长度做为新的长度,这就实现了动态增长
indexOf 从前循环返回传入对象在集合里第一次出来的位置的索引 没找到返回-1
lastIndexOf 从后循环返回传入对象在集合里第一次出来的位置的索引 没找到返回-1
transient Java关键字 使用这关键字修饰的成员变量,不参加序列化
RandomAccess接口:又一个标记接口 在对列表进行随机或顺序访问的时候,访问算法能够选择性能最佳方式。可以用来保证算法的性能,感觉也是区分ArrayList和LinketList的区别