You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

新手求助:Java中触发ArrayIndexOutOfBoundsException异常问题咨询

Java数组索引越界问题解决方法

你遇到的java.lang.ArrayIndexOutOfBoundsException异常,核心原因是Java数组采用0起始索引:

  • 当你创建int[] numbers = new int[10];时,数组的长度是10,但有效索引范围是0到9,不存在索引为10的元素,直接访问numbers[10]必然触发越界异常。

修正方案

如果你想打印数组的第10个元素(也就是数组的最后一个元素),需要使用索引9,或者用numbers.length - 1来动态获取最后一个元素的索引(这种写法更健壮,数组长度变化时无需手动修改索引值)。

修改后的代码如下:

import java.util.Random;

public class Main {
public static void main(String[] args) {
    int[] numbers = new int[10];
    Random r = new Random();
    for(int i = 0; i < numbers.length; i++){
        numbers[i] = r.nextInt();
    }

    // 打印第10个元素(对应索引9)
    System.out.println(numbers[9]);
    // 或者更通用的写法,适配任意长度的数组
    // System.out.println(numbers[numbers.length - 1]);
}
}

补充提示

  • 你代码里的循环条件i < numbers.length是正确的,它保证了循环只会访问0到numbers.length-1的有效索引
  • 在Java、C、C++等多数编程语言中,数组都是0起始索引,第N个元素对应的索引是N-1,记住这个规则能避免绝大多数数组越界问题

内容的提问来源于stack exchange,提问作者George Lucas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 03:43:11