如果采用的是无参构造器初始化一个Arraylist集合list,则集合list的初始长度为0,当向集合中添加一个元素时,list集合的size会被扩容到10,当向list中添加的元素大于10个时,list集合会扩容到原来的1.5倍,也就是15,当向list中添加的元素大于15时,list集合的size将继续扩容到15的1.5倍,取整后即22,依此类推。
如果采用的是有参构造器初始化一个Arraylist集合list,则定义的集合长度即为集合list的初始长度,此后当向集合中添加的元素超过集合的长度时,会自动扩容到初始长度的1.5倍,依此类推。
此外,Arraylist时线程不安全的,因为在它的底层源码中并没有synchronized关键字来对集合进行上锁。