Stavo solo controllando alcune domande di OCJP e ho trovato questa differenza durante l'inizializzazione e le eccezioni dell'array di stringhe.L'array di stringhe senza dimensione iniziale fornisce un'eccezione di puntatore nullo
Caso 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();
}
Caso 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();
}
Linea 2 non genera alcuna eccezione, mentre la linea 4 genera un'eccezione puntatore nullo. La linea 2 emette il valore come null
.
java ha una differenza nei valori predefiniti per l'inizializzazione quando viene specificata la dimensione di un array e quando non lo è?
'e ogni componente dell'array viene inizializzato sul suo valore predefinito' in modo che la riga 3 debba assegnare 10' array 1-D' e assegnare 'null' come valore a ciascuno dei suoi elementi, giusto? Lo stesso accade per la Linea 1. Ho ragione? – redDevil
Assegna null a 'a [0]', 'a [1]', ecc. Mentre la riga 1 assegna null a 'b [0] [0]', 'b [0] [1]', ecc. –