title: Initializing array with values - should I explicitly instance the class or not?
body: <p>I often see arrays being initialized like this:</p>
  
  <pre><code>String[] array = new String[] { "foo", "bar", "baz" };
  </code></pre>
  
  <p>But reading the <a href="http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html">Language Basics - Arrays</a> shows that the short syntax doesn't require explicitly instancing the constructor:</p>
  
  <blockquote>
    <p>Alternatively, you can use the shortcut syntax to create and
    initialize an array:</p>
  
  <pre><code> int[] anArray = { 
       100, 200, 300,
       400, 500, 600, 
       700, 800, 900, 1000
   };
  </code></pre>
  </blockquote>
  
  <hr>
  
  <p>So, assuming these two methods of initialization:</p>
  
  <pre><code>String[] array = new String[] { "foo", "bar", "baz" };
  String[] array2 = { "foo", "bar", "baz" };
  </code></pre>
  
  <p>Is there any difference between these? Both seems to work the same, in that case should I assume that the second one implicitly calls the <code>new String[]</code> and the first one is just a more verbose way, or is there more to it behind the scenes?</p>
  
  <p>Starting with Java so sorry if this is way too stupid of a question, but I couldn't find anything about this in the web.</p>