我只是檢查一些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();
}
案例而線4拋出一個零指示字例外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不會引發任何異常。 雖然第二行確實輸出值爲null
。
當指定數組的大小和不指定數組的大小時,java是否在初始化的默認值方面有所不同?
'並且數組中的每個組件都被初始化爲其默認值' 因此第3行應該分配10個1-D數組並且將'null'賦值爲它的每個元素的權利?第1行也是如此。我對嗎? – redDevil
它將null賦值給'a [0]','a [1]'等,同時第1行給'b [0] [0]','b [0] [1]'賦予null等等。 –