What is this syntax called? `new Type() { ... }`
<p>I know that Java will let you do trickery with a variable's type when initializing a class variable. Along the lines of:</p>

<pre><code>SomeType foo = new SomeType() {
    {
        this.fooField = 12345;
    }
    @Override public void someMethod() {
        throw new ReallyWeirdException();
    }
};
</code></pre>

<p>which will create an instance variable <code>foo</code> where <code>someMethod()</code> has different semantics than in the usual <code>SomeType</code>, and where <code>fooField</code> is initialized to a value other than its normal default.</p>

<p>But what is the <code>new Type() { ... }</code> syntax called?</p>
