Inicializando matriz com valores - devo explicitamente instanciar a classe ou não?

Muitas vezes vejo matrizes sendo inicializadas assim:

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

Mas lendo oFundamentos da Linguagem - Matrizes mostra que a sintaxe curta não requer explicitamente o instanciamento do construtor:

Como alternativa, você pode usar a sintaxe de atalho para criar e inicializar uma matriz:

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

Então, assumindo esses dois métodos de inicialização:

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

Existe alguma diferença entre estes? Ambos parecem funcionar da mesma forma, nesse caso devo supor que o segundo implicitamente chama onew String[] e o primeiro é apenas um modo mais detalhado, ou existe mais nos bastidores?

Começando com Java desculpe se isso é muito estúpido de uma pergunta, mas eu não consegui encontrar nada sobre isso na web.

questionAnswers(3)

yourAnswerToTheQuestion