Comenzando con el comienzo de la declaración de matrices de la manera anterior.
Puede crear una matriz declarando:
int [] arr = new int[3]; //(eq 1)
Usted puede ir un paso más allá al declarar los valores de la matriz con:
int [] arr = {0,1,2}; //(eq 2)
Si conoce sus valores antes de tiempo, no tiene que crear una instancia de int [].
Ahora a su pregunta. No hay diferencia entre los dos, como han dicho otros, a excepción de una imagen más clara de lo que está haciendo. El equivalente de eq. 2 en una matriz de dos dimensiones es:
int [][] arr = {{0,1,2},{3,4,5},{6,7,8}}; //(eq 3)
Note como que no es necesario declarar "new int [] []" antes de comenzar a introducir en los valores."{0,1,2}" es una matriz en sí y lo es todo lo demás dentro del primer "{" y último} "en la ecuación 3. De hecho, después de declarar arr, puede llamar a la matriz" {0,1 , 2} "de la ecuación 3 por la siguiente declaración:
arr[0]; //(eq 4)
eq 4 es equivalente a la ecuación 2. se puede cambiar el sencillo "{" con "new int [] {" o" new int [] [] {". Si quiere cambiar uno por otro, está bien y la única diferencia real es el clima o no, se ajusta a su estilo de codificación.
Por diversión, he aquí un ejemplo de Matriz tridimensional en sintaxis breve:
// Esta es una declaración muy largo y yo no recomiendan el uso de esta forma
int [][][] arr = {{{0,1,2},{3,4,5},{6,7,8}}, {{9,10,11},{12,13,14},{15,16,17}}, {{18,19,20},{21,22,23},{24,25,26}}};