title: When does this return null?
body: <p>There's the Main class and 2 example classes. One extends <code>HashMap</code>.</p>
  
  <p>The Main:</p>
  
  <pre><code>public class Main {
      public static void main(String[] args) {
          System.out.println("Positive:");
          PositiveExample positiveExample = new PositiveExample();
          positiveExample.printThis();
          System.out.println("Negative:");
          NegativeExample negativeExample = new NegativeExample();
          negativeExample.printThis();
      }
  }
  </code></pre>
  
  <p>The standard one:</p>
  
  <pre><code>public class PositiveExample {
      void printThis() {
          System.out.println(this);
          System.out.println(this == null);
      }
  }
  </code></pre>
  
  <p>And the HashMap based one.</p>
  
  <pre><code>import java.util.HashMap;
  
  public class NegativeExample extends HashMap {
      void printThis() {
          System.out.println(this);
          System.out.println(this == null);
      }
  }
  </code></pre>
  
  <p>Now take a look at the console output:</p>
  
  <blockquote>
    <p>Positive:<br>
    PositiveExample@2a139a55<br>
    false<br>
    Negative:<br>
    {}<br>
    false</p>
  </blockquote>
  
  <p>And notice the empty <code>{}</code>. As opposed to <code>PositiveExample@2a139a55</code> from the standard class' output.</p>
  
  <p>The <code>HashMap</code> based class output says <code>this</code> is not <code>null</code>, but that's how it behaves, doesn't it. Check it for yourselfs.</p>
  
  <p>I'm on Java build 1.8.0_60-b27, Ubuntu 14.04 64 bit.</p>