Inicializando la matriz con valores, ¿debería instanciar explícitamente la clase o no?

A menudo veo que las matrices se inicializan así:

String[] array = new String[] { "foo", "bar", "baz" };

Pero leyendo elConceptos básicos del lenguaje - Arreglos muestra que la sintaxis corta no requiere instilar explícitamente el constructor:

Alternativamente, puede usar la sintaxis de acceso directo para crear e inicializar una matriz:

 int[] anArray = { 
     100, 200, 300,
     400, 500, 600, 
     700, 800, 900, 1000
 };

Entonces, asumiendo estos dos métodos de inicialización:

String[] array = new String[] { "foo", "bar", "baz" };
String[] array2 = { "foo", "bar", "baz" };

¿Hay alguna diferencia entre estos? Ambos parecen funcionar igual, en ese caso debería suponer que el segundo llama implícitamente alnew String[] y la primera es solo una forma más detallada, o ¿hay algo más detrás de escena?

Comenzando con Java, lo siento si esto es una pregunta demasiado estúpida, pero no pude encontrar nada sobre esto en la web.

Respuestas a la pregunta(3)

Su respuesta a la pregunta