请教一下出现Exception in thread “main”java.lang.问题怎么解决

img


java执行就出现,请问一下这种怎么解决,一直出现这种情况,无法解决,麻烦看看怎么解决。

代码不妨贴出来看看

错误提示就这些字符?重要的是lang.后面的信息

索引越界,你Debug看下就知道了.大于等于数组大小,则该索引为非法索引。 比如你数组长度为3.索引从0开始.只有索引2取到值.这时候你索引取3或者大于3就会报异常

java的编译环境版本太低,例如:java 8 class file的版本是52,Java 7虚拟机只能支持到51。所以需要升级到java 8 vm才行。
版本升级/调整一下

希望对题主有所帮助,可以的话,帮忙点个采纳!

因为arr.length只是获取了一维数组的个数,但是在遍历一维数组的时候,创建了二维数组的个数。循环给数组赋值的时候,又用了一维数组的个数,比如i=0的时候,二维数组的长度是1,但是用arr.length的话,是3,因此会访问到a[0][1]、a[0][2]、a[0][3]。但是最多是a[0][0];因此数组越界。所以应该是将j < arr.length改为j < arr[i].length;就可以了


public class Main {
    public static void main(String[] args) {
        int[][] arr = new int[3][];
        System.out.println(arr.length);
        for (int i = 0; i < arr.length; i++) {
            arr[i] = new int[i+1];
            for (int j = 0; j < arr[i].length; j++) {
                arr[i][j] = i+1;
            }
        }
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                System.out.println(arr[i][j]);
            }
            System.out.println();
        }
    }
}