這節我們看一下在數組操作中經常出現的兩個小現象.
我們直接看一段代碼吧
class ArrayDemo2 //數組-常見的問題
{
public static void main(String[] args)
{
int[] arr =new int[3];
//System.out.println(arr[3]);//編譯的時候不報錯(ArrayIndexOutOfBoundsException),運行時才報錯
//當訪問到數組中不存在的角標時,就會發生異常.
//arr = null;
//System.out.println(arr[0]);//NullPointerException
//當引用型變量沒有任何實體指向時,還在用其操作實體,就會出現該異常.
System.out.println(arr);// [I@139a55 @是分隔符,之前是實體的類型,[表示數組,I表示整型
}
}
從上面的代碼我們可以看出來我們在對數組的操作時會經常遇到ArrayIndexOutOfBoundsException和NullPointerException這兩個異常.
當訪問到數組中不存在的角標時,就會出現ArrayIndexOutOfBoundsException異常.
當引用型變量沒有任何實體指向時,還在用其操作實體,就會出現NullPointerException異常.
在以後的編程過程中只要看到這兩個異常,我們就能知道是什麼原因了.
最後就說一下最後一句語句的意義:當我們不知道程序中的一個實體是什麼類型時,我們可以直接打印該實體,然後看打印出的字段的@之前的內容,就可以確定實體是什麼類型了,例子中[表示的就是數組,I表示的數組的元素是整型.