数组操作中两个常见问题
大家在操作数组的过程中,不可能一帆风顺,这里列举两个最常遇到的问题
- 数组下标越界异常(ArrayIndexOutOfBoundsException)
- 这是一个单独针对数组的异常
- 原因是访问了一个不存在的索引,索引不合法
public class Demo {
public static void main(String[] args) {
int[] ints = {1, 2, 3};
System.out.println(ints[-1]);
}
}
- 空指针异常(NullPointerException,简称NPE)
- 引用数据类型都会有这个异常,包括数组,String等
- 原因是当引用数据类型的引用指向了null(空常量),指向了虚无
- 这时如果仍然想通过引用操作堆上对象,就会报错
- 这时如果仍然想通过引用操作堆上对象,就会报错
需要注意的地方:
-
空指针异常不是数组独有,而是引用类型都会有的错误
-
以后大家会天天和引用数据类型打交道,也会每天和空指针异常打交道
-
学生引用类型,教师类
-
避免空指针异常是我们首要考虑的问题
- 避免空指针异常最简单的方式就是if判断
数组长度为0和数组是空(null)有啥区别?
int[] arr1 = {};
System.out.println(arr1.length);
int[] arr2 = null;
System.out.println(arr2.length);