Trouble in understanding this syntax
<p>I have come across with this syntax while reading some others code</p>

<pre><code>Map&lt;String, String&gt; map = new HashMap&lt;String, String&gt;() {
    { 
         put("a", "b");
    }
};
</code></pre>

<p>I know how to use <code>anonymous inner class</code> but this seems something different.  Could somebody explain me how exactly the above works and how it is different from <code>Map&lt;String, String&gt; map = new HashMap&lt;String, String&gt;(); map.put("a", "b");</code> ?</p>
