一. 前言

最近很多初学java的小伙伴,甚至有些学习到或框架阶段的小伙伴跑来问健哥,该如何解决Java中的s 数组越界异常。既然这个异常这么常见,那么健哥就在这里手把手地教大家分析解决掉这个问题,让你以后不再被这个异常给吓退。

二. 异常现象

首先我们来看看下面这段代码。这段代码运行时就会出现数组越界异常。

package test;

/**
 * @author 千锋健哥
 */

public class TestArrayException {

    public static void main(String[] args) {
        String[] strArray = {"千锋健哥""数组越界演示"};
        System.out.println("=======" + strArray[2]);
    }
}

/**
 * @author 千锋健哥
 */

public class TestArrayException2 {

    public static void main(String[] args) {
        String[] strArray = {"千锋健哥""数组越界演示"};

        for(int i = 0; i <= 9; i++) {
            System.out.println("===打印数组中第"+i+"个元素的值===" + strArray[i]);
        }
    }
}

运行结果:

数组越界-前方高能丨手把手教你解决ArrayIndexOutOfBoundsExcepti

数组越界-前方高能丨手把手教你解决ArrayIndexOutOfBoundsExcepti

三. 异常原因

那么为什么上面的代码会出现这个异常呢?健哥一步一步地来给各位小伙伴,分析解释一下产生这个异常的原因。

四. 解决办法

既然问题的原因找到了,那么我们就很容易解决这个问题了,解决过程如下:

数组越界-前方高能丨手把手教你解决ArrayIndexOutOfBoundsExcepti

数组越界-前方高能丨手把手教你解决ArrayIndexOutOfBoundsExcepti

五. 总结

所谓的数组越界异常,其实就是代码中有地方调用了数组中的某个元素,然后该元素的索引超过了数组的最大长度,但该元素在数组中并不存在,从而报错。所以我们只需要找到调用数组元素的代码所在,将调用的索引号改为数组中存在的索引号即可。

发表回复

后才能评论