在Java中,假设存在一个整型一维数组 `arr`,且该数组已经初始化并包含若干元素。下列关于数组操作的代码片段,哪一项在运行时最有可能导致 `ArrayIndexOutOfBoundsException` 异常?
答案解析
A选项中的循环条件 `i <= arr.length - 1` 等价于 `i < arr.length`,循环访问数组的每个合法索引,不会越界。B选项的循环条件 `i < arr.length` 是访问数组的正确方式,循环访问数组的每个合法索引,不会越界。C选项的循环条件 `i < arr.length`,且访问 `arr[i-1]`,当i=1时,会访问arr[0],当i=arr.length时,会访问arr[arr.length-1],不会越界。D选项的循环条件 `i > 0`,且访问 `arr[i-1]`,当i=arr.length时会访问arr[arr.length-1], 当i=1时会访问arr[0], 不会越界。但当i=arr.length时,i没有访问arr[arr.length], 所以访问arr[arr.length-1]不会越界。故而,只有A选项最有可能出现越界错误,当i的值等于arr.length时,访问arr[arr.length]会发生异常。
正确答案:A