我只是在检查一些 OCJP 问题,并在字符串数组初始化和异常期间遇到了这种差异。
情况1
try {
String[][] b = new String[10][10]; // 1
System.out.println(b[0][0]); // 2
} catch (Exception e) {
System.out.println("Exception during array 'b' initialization");
e.printStackTrace();
}
案例2
try {
String[][] a = new String[10][]; // 3
System.out.println(a[0][0]); // 4
} catch (Exception e) {
System.out.println("Exception during array 'a' initialization");
e.printStackTrace();
}
第 2 行不抛出任何异常,而第 4 行抛出空指针异常。第 2 行确实输出了该值null
。
当指定数组的大小和不指定数组的大小时,java的初始化默认值是否有所不同?