数组是一种常用数据结构,用于存储多个数据,与链表不同,它是在堆中一次开辟连续的内存空间,且每个数组元素所占内存大小相同,可通过数组元素索引来访问数组元素,因此要求数组元素类型必须相同。数组也是对象,它通过数组引用变量指向数组中元素所占内存来操作数组。数组定义是指定义一个引用变量,并没有开辟内存空间。但它并未指向一块有效的内存。数组初始化是指给数组开辟一块内存空间并用数组引用变量指向它。数组初始化分为静态初始化和动态初始化。静态初始化是指由开发者指定每个元素的初始值:int[] intArr; intArr = new int[] {1,2,3,4,5};或者定义和初始化放在一起:int intArr = new int[]{1,2,3,4,5}。动态初始化只定义数组长度,由编译器为每个元素赋默认值。如:Object obj = new String[5]。但不能及定义数组长度又定义数组元素值,可能是防止两者不统一。
数组实际上是数据结构,虽然java不要程序员对内存操作像C++那样了解,但理解了其内存操作,就会更加理解二维三维数组,其原理也是一维数组,只不过数组引用指向的内存也是引用而已。打个比方,301班是个引用变量指向班上的30个student,而30个student也是一个引用变量,每个都指向具体的学生(姓名、年纪、性别)。
Java8提供了工具类Arrays,里面的静态方法直接操作数组。如收索、复制、排序等。