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中的異常以及對異常的處理