ArrayIndexOutOfBoundsException异常分析及解决办法
学习Java的同学们,在刚接触数组这一知识点的时候,由于对数组的特性不熟悉从而经常会遇到数组下标越界的异常。
什么是数组下标越界异常?
在java开发过程中这是一个非常常见的异常,从名字上看是数组下标越界错误,解决方法就是查看为什么下标越界。当然顾名思义就是数组的下标超出了边界,也就是说我们在获取数组元素的过程中超出了数组的下标(也叫做索引)的范围从而引发的异常。
这个异常在其他的一些编程语言中是不会出现的,比如说JavaScript中因为数组的长度是可变,当获取超出数组长度的元素时返回的是undefined,而不是抛个异常出来。但是在java中是不可以的,因为Java的语法特性在数组初始化时必须设定好数组的长度,长度一旦确定后期将不能再改变,所有在Java中获取了数组下标之外的数据时将会发生数组下标越界异常即ArrayIndexOutOfBoundsException。
接下来通过一个示例给大家演示一下数组下标越界异常以及如何规避此异常。
创建一个测试类
- 使用手动的方式获取数组元素
package com.exception; /** * @descrption:数组下标越界演示 * @author lizhilun * */ public class ArrayIndexOutOfBoundsDemo { public static void main(String[] args) { //初始化一个String类型的1维数组 String[] array= {"我","爱","中","国"}; //依次获取数组中的元素 System.out.print(array[0]); System.out.print("-"+array[1]); System.out.print("-"+array[2]); System.out.println("-"+array[3]); //当要获取数组中第5个元素的时候将会出现下标越界异常 System.out.print("-"+array[4]); } } |
- 使用for循环的方式来获取数组中的元素
正确的使用循环条件
错误的使用循环条件
这个错误也是好多同学经常遇到的,因为数组的下标(索引)是从0开始的,所以我们在获取数组元素的过程中应该最多获取到数组长度的-1个元素上。
如何避免数组的下标越界?
上面案例中数组的元素的获取场景已经很明显的体现了,出现数组下标越界的原因也分析了,所以咱们以后在使用数组的过程中一定要注意数组的长度,我们获取数组元素的时候一定要先确认好是否超出了数组的下标范围,尤其是在循环中使用循环的条件来获取数组元素时一定要仔细的使用好循环条件从而尽可能避免出现数组下标越界的情况。