面试官经常问这个问题,其实这有啥可问的,即使非要将两者放一起来问,也应该是问两者之间的联系,而不是区别。非问不可的话,区别当然是有的。
数组:
创建一个长度为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可以扩容,而数组不能。