为什么这会在运行时导致 ArrayIndexOutOfBoundsException?

这是代码:


public class Test {

    public static void main(String[] args) {

        int[] a= new int[3];

        System.out.print(a[a.length]);

    }

}

为什么这会在运行时导致 ArrayIndexOutOfBoundsExceptionwill ?


慕桂英546537
浏览 215回答 3
3回答

白猪掌柜的

a.length 返回数组中元素的数量,这里是 3。数组索引从 0 开始。有 3 个元素,它会变成 0,1,2。没有索引 3,因此例外。

米琪卡哇伊

它从 0 开始,因此您必须更改为 [a.length - 1] public class Test{       public static void main(String []args){          int[] a= new int[3];          System.out.print(a[a.length-1]);       }    }

炎炎设计

你应该使用它:public class Test{     public static void main(String []args){        int[] a= new int[3];        System.out.print(a[a.length-1]);    }}解释:a.length将返回长度,即3(3 个现有字段)。但是索引计数a[3]从 0 开始并上升到 2。用 -1 减少长度返回最后一个真正存在的索引 (2)。所以 a[a.length](= a[3]) 导致数组索引越界异常。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java