这是代码:public class Test { public static void main(String[] args) { int[] a= new int[3]; System.out.print(a[a.length]); }}为什么这会在运行时导致 ArrayIndexOutOfBoundsExceptionwill ?
3 回答
米琪卡哇伊
TA贡献1998条经验 获得超6个赞
它从 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]);
}
}
炎炎设计
TA贡献1808条经验 获得超4个赞
你应该使用它:
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]) 导致数组索引越界异常。
添加回答
举报
0/150
提交
取消