如果您曾经使用过 C ,那么答案就非常简单。在 C语言中
,创建数组的方式是在堆栈上分配一个足以容纳元素数量的静态内存长度,并使用指针指向第一个元素-或堆上动态内存长度,然后用指针指向第一个元素。
int a[5]; //stack, static allocationint* a = (int*)malloc(sizeof(int)*5)); //heap, dynamic allocation
在 C ++中 ,第二个版本已更改为该版本,这显然是因为发生的情况更加明显:
int* a = new int[5];
他们将这种类型的数组创建转移到 Java上 。
int[] a = new int[5];
Arrays并不是真正像典型的对象那样工作,因此,为什么即使创建它们并通过反射对其进行操作,也使用不同的
Array类来操纵该对象。(请参阅http://docs.oracle.com/javase/tutorial/reflect/special/arrayInstance.html)
ArrayLists有所不同,因为它们就像Java中的大多数事物一样只是日常类,因此您可以通过实际的构造函数调用对其进行初始化:
List<T> = new ArrayList<T>();
基本上,数组和类只是以不同的方式工作。



