ArrayList相关面试题
1.ArrayList底层数据结构是什么?
Object类型的一维数组
2.ArrayList初始化容量是多少?
使用无参构造创建ArrayList时,会将数组先赋值成没有长度的空数组
使用有参构造创建ArrayList时,如果参数大于0则创建参数长度的数组,如果参数等于0会将数组
赋值成没有长度的空数组,如果参数小于0就会报错
ArrayList底层有个变量规定初始化容量为10,如果使用无参构造创建ArrayList对象,第一次添加元素时,会将底层的Objec类型的一维数组初始化为10长度的数组
3.ArrayList的扩容机制?
是原数组的1.5倍
4.ArrayList数组最大容量是多少?
Integer.MAX_VALUE-8
5.ArrayList数组最大容量为什么是Integer.MAX_VALUE-8?
因为-8的位置要去存储数组的头部信息(内存地址、元素类型、数组长度...)