在Java程序中,如果一个方法试图访问一个不存在的数组索引,会发生什么?假设数组定义为 `int[] arr = new int[5];`,以下哪种情况会导致程序抛出异常?
答案解析
核心考点:数组索引的边界条件和异常处理。
解题思路分析:Java中数组的索引从0开始,到数组长度减1结束。访问超出这个范围的索引会抛出ArrayIndexOutOfBoundsException异常。选项A访问了索引5,而数组长度为5,所以最大索引只能是4,因此超出边界。选项B访问了索引4,这是数组的最后一个有效索引,不会抛出异常。选项C访问了负索引-1,这明显超出范围。
选项A分析:访问了超出数组长度的索引,会导致ArrayIndexOutOfBoundsException。
选项B分析:访问了数组的最后一个有效索引,不会发生异常。
选项C分析:访问了负索引,会导致ArrayIndexOutOfBoundsException。
选项D分析:因为A和C都会导致异常,所以D正确。
易错点提醒:数组索引从0开始,负索引和等于数组长度的索引都是无效的。
正确答案:D