ArrayIndexOutOfBoundsException是运行时异常,需通过校验length、规范遍历、避免硬编码下标及使用安全集合来预防。
Java中数组越界(ArrayIndexOutOfBoundsException)本质是访问了不存在的索引位置,它在编译期无法被发现,属于典型的运行时异常。避免它的核心不是“捕获”,而是“预防”——通过明确边界、规范操作和借助更安全的替代结构,从源头消除风险。

Java数组长度由 array.length 决定,且不可变。任何硬编码下标(如 arr[10])或依赖外部输入而未校验的行为都极危险。
for (int i = 0; i ,而非 i 或固定上限
if (index >= 0 && index < arr.length) {
System.out.println(arr[index]);
} else {
throw new IllegalArgumentException("索引 " + index + " 超出有效范围 [0, " + (arr.length - 1) + "]");
}
arr[-1] 直接抛异常表单参数、配置文件读取值、网络请求字段等若未经校验就用于数组访问,是越界高发场景。
page=3&size=20,若用于获取缓存数组某项,需先确认 page * size
safeGet(arr, index, defaultValue)
除非有明确性能要求或底层交互需求,日常开发中推荐用 ArrayList、LinkedList 等集合替代裸数组。
ArrayList.get(i) 虽仍可能越界,但配合 list.size() 更直观;更重要的是可使用 list.subList(from, to) 等安全切片方法Optional.ofNullable(list.get(i)) 或自定义工具方法实现空安全访问静态检查和编码习惯能提前拦截多数隐患。
assert index >= 0 && index (生产环境需开启 -ea)
-1、0、arr.length - 1、arr.length、Integer.MAX_VALUE
Arrays.asList() 包装后调用 contains()、indexOf() 等语义化方法,减少手动索引操作