1.数组越界异常
每个数组的索引都会有一个范围,即0~length-1.在访问数组的元素时,索引不能超过这个范围,否则程序会报错。
如下所示:
public class ArrayDemo06 {
public static void main(String[] args) {
int[] arr = new int[4]; // 定义一个长度为4的数组
System.out.println("arr[0]=" + arr[4]); // 通过角标4访问数组元素
}
}
运行结果为:
运行结果中所提示的错误信息是数组越界异常ArrayIndexOutOfBoundsException,出现异常的原因是数组的长度是4,其索引范围为0~3,而代码中使用索引4来访问元素时超出了数组的索引范围。
2.空指针异常
在使用变量引用一个数组时,变量必须指向一个有效的数组对象,如果改变量的值为NULL,则意味着没有指向任何数组,此时通过该变量访问数组的元素会出现空指针异常。
如下所示:
public class ArrayDemo07 {
public static void main(String[] args) {
int[] arr = new int[3]; // 定义一个长度为3的数组
arr[0] = 5; // 为数组的第一个元素赋值
System.out.println("arr[0]=" + arr[0]); // 访问数组的元素
arr = null; // 将变量arr置为null
System.out.println("arr[0]=" + arr[0]); // 访问数组的元素
}
}
运行结果为:
通过运行结果可以看出,代码4、5行代码能通过变量arr正常的操作数组,第6行代码将变量置为NULL,当第7行代码再次访问数组是就会出现空指针异常NullPointerException。
对异常的详细介绍和理解可以继续阅读:Java中的异常以及对异常的处理