概念
数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个元素,每个元素可以通过一个索引(下标)来访问它们。
Java数组是引用类型,数组中的每个元素相当于该对象的成员变量。无论数组中存储的元素是原始类型还是引用类型,数组对象本身是在堆中存储的。
创建数组
声明(定义)数组
int[] arr;//此时数组是没有意义的
声明数组只是设定了数组的名字和数据类型,只有创建后才能使用数组,否则会出现空指针异常(NullPointerException)。
创建(初始化)
数组初始化是在内存中创建一个数组,并向其中赋予一些默认值。初始化方式有两种,动态初始化(指定内容)和静态初始化(指定内容)。
格式:
- 动态:数据类型[] 数组名=new 数据类型[长度];
- 静态:数据类型[] 数组名=new 数据类型[] {元素1,…};
通过元素个数可以得到数组大小。
简化:数据类型[] 数组名={元素1,…};【简化方法初始化数组时不能先声明,再直接赋值。】。
arr = new int[2];//在内存空间(堆)中开辟空间
赋值
arr[0] = 1;
arr[1] = 2;
应用
访问数组元素:索引值
使用下标访问数组元素,数组名[索引值],需要注意数组下标越界问题和空指针异常问题(可能的原因有数组只声明未创建、数组赋值为null,所有引用类型变量都能赋值为null)。
ArrayIndexOutOfBoundsException(数组下标越界异常类):
数组长度:数组名.length
遍历
-
循环结构:从数组的第一个元素向后逐个访问数组元素
-
增强for循环
数组作方法参数和返回值(返回多个值)
作为方法参数调用方法时传入数组名传递数组地址值,同样作为返回值传出的也是数组地址。
Array类(工具类)
特殊数组
对象数组,如:字符串数组;字符数组等等。
在对象数组进行动态初始化后,数组元素全部为空对象,必须逐个进行对象的初始化才能使用。