java “数组” 和 “ArrayList” 的区别

96
山如
2018.05.17 11:38* 字数 293

面试官经常问这个问题,其实这有啥可问的,即使非要将两者放一起来问,也应该是问两者之间的联系,而不是区别。非问不可的话,区别当然是有的。

数组:

创建一个长度为10的Object 数组Object [] array = new Object[10];

创建了Object 数组,长度为3   Object [] array = {1,'b',"c"};   

 或者 Object [] array =new Object[] {1,'b',"c"};

注意:有{1,'b',"c"}初始化句柄时不可以在“[]”中指定数组指定长度。长度由{}确定。

------------------------------------------------------------------

ArrayList:

public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, java.io.Serializable

ArrayList 实现了List接口

有add() remove() clear() 等方法,用起来更方便。

ArrayList扩容,每次扩容都是变为之前的1.5倍。 

两者之间的联系:

ArrayList 的底层数组结构就是Ojbect[] 。

两者之间的区别:

1. 创建 ArrayList对象不用指定长度,而创建数组对象必须指定长度。

2. 数组可以是多维的,而ArrayList不是。

3. ArrayList可以扩容,而数组不能。

IT
Web note ad 1