一.数组的定义:存储多个相同数据类型的元素,其格式有2种:1. 数组类型[] 数组名, 如: int[] arr; 2. 数组类型 数组名[], 如: int arr[]; 我们一般推荐使用第一种格式。
二.数组的初始化:
1. 当知道数组的类型以及长度,我们可以用动态初始化的方法,其格式如下:数组类型[] 数组名 = new 数组类型[长度],如:int[] arr = new int[10];
2. 当我们知道数组的内容时,我们也可以用静态初始化的方法来初始化数组,其格式如下:数组类型[] 数组名 = new 数组类型[]{元素1,元素2,元素3,...}, 如:int[] arr = new int[]{1, 2, 3, ...}; 当然,我们也可以用省略格式来写,其格式为:数组类型[] 数组名 = {元素1, 元素2, 元素3, ...}, 如:int[] arr = {1, 2, 3, ...};
3. 引用数据类型的默认值为null。
三.索引:数组的索引表示元素在数组中的位置,元素在数组中从左到右索引依次为0, 1, 2,...,即数组类型[] 数组名 = {数组名[0], 数组名[1], 数组名[2], ...} ,如:int[] arr = {arr[0], arr[1], arr[2], ...}。
四.赋值:为数组元素赋值的方法为使用数值符号“=”,即:数组名[索引] = 数据值,如:int[2] = 1; 表示:将等号右边的值(1),赋值给右边(数组第三个元素(int[2]))
五.数组常见的两种错误:
NullPointerException 空指针异常
数组的值变成 null 要访问数组里面的元素 会产生此类错误,
如:int[] arr = new int[5];//初始化动态数组
arr[] = null;//将数组arr赋值为null
System.out.println(arr);//打印数组arr
ArrayIndexOutOfBoundsException 数组索引超出界限异常
数组的索引超出了数组的范围 会产生此类错误,
如:int[] arr = new int[5];//初始化动态数组
arr[] = null;//将数组arr赋值为null
System.out.println(arr[5]);//打印数组第6个元素,由于数组arr只有5个元素,因此访问第6个元素会产生此类错误
六.数组遍历:数组遍历我们一般采用for循环的方法,将循环次数设置为数组长度(arr.length):
for(int i= 0; i<arr.length; i++){
System.out.println(arr[i]);
}
七.数组在内存中的表现:
初始化数组储存在堆内存中,栈内存中储存的是访问堆内存的地址,如,arr[] = {1, 2, 3};
System.out.println(arr); 得到的是一个地址值,指向堆内存中的{1, 2, 3}; 因此在参数传递的过程中,引用数据类型传递的是地址值。
|