数组的两种基本定义格式:
1.数据类型[ ] 变量名 如: int[ ] arr , 定义了一个int类型的数组,数组名是arr;
2.数据类型 变量名[ ] 如: it arr [] , 定义了一个int类型的变量,变量名是arr数组。
数组的初始化:
1.动态初始化:
格式:数据类型 []变量名 = new数据类型 [数组长度];
范例 int [] arr = new int[3]
;
2.静态初始化:
格式:数据类型 [] 变量名 = new 数据类型 [] {数据1,数据2,数据3,…}
范例 int [] arr = new int [] {1,2,3}
数组中操作的两个常见小问题:
1.索引越界
public class Shu{
public static void main(String[] args){
public class Shu{
int [] arr = new int[3]
System.out.println(arr[3]);}
}
如这段代码,由于在堆空间中因为从0开始,所以其最大索引为2,所以3索引不存在,就会存在错误
2.空指针异常
public class Shu{
public static void main(String[] args){
int [] arr = new int[3];
System.out.println(arr[2]);
arr = null;
System.out.println(arr[0]);}
}
由于访问的数组已经不再指向堆内存的数据,若再强行访问,那么就会造成空指针异常。