Given the code fragment:
int [] [] array = {{0}, {0, 1}, {0, 2, 4}, {0, 3, 6, 9}, {0, 4, 8, 12, 16}}; System.out.println(array [4][1]);
System.out.println(array) [1][4]);
/
What is the result?
A.
4
Null
B.
Null
C.
An IllegalArgumentException is thrown at run time
D.
4
An ArrayIndexOutOfBoundException is thrown at run time
Explanation:
The first println statement, System.out.println(array [4][1]);, works fine. It selects the element/array with index 4, {0, 4, 8, 12, 16}, and from this array it selects the element with index 1, 4. Output: 4
The second println statement, System.out.println(array) [1][4]);, fails. It selects the array/element with index 1, {0, 1}, and from this array it try to select the element with index 4. This causes an exception.
Output: Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 4
D
The Answer is D. The third statement was mistyped and should have been written:
System.out.println(array[1][4]);
Remember, that Java uses zero-based index arrays. Also, the unchecked RuntimeException in the java.lang package, ArrayIndexOutOfBoundsException is thrown when code attempts to access an array element whose index is less than 0 or greater than or equal to the array.length property.