(参考:尚硅谷_宋红康_Java语言基础)
数组异常
数组的越界
int[] arr = new int[4];
for(int i=0;i<arr.length;i++){
statement.......
}
上面这个例子毫无疑问是正确的,但如果把里面的条件改为i<=arr.length
,便会导致越界;
当然越界也可能是左边界越界,不多叙述;
空指针
这里列举三个常见的情况:
①下面的这个例子 中arr = null
仅仅是模拟某些情况下特殊操作所导致,arr原本指向一个堆空间地址,操作后指向null;
package de1;
public class Test2 {
public static void main(String[] args) {
int arr[] = new int[] {1,2,3};
arr = null;
System.out.println(arr[0]);
}
}
②
package de1;
public class Test2 {
public static void main(String[] args) {
int[][] arr = new int[4][];
System.out.println(arr[0][0]);
}
}
③
package de1;
public class Test2 {
public static void main(String[] args) {
String[] arr = new String[] {"aa","bb","cc"};
arr[0] = null;
System.out.println(arr[0].toString());
}
}