title: Clarification in Java basics - Constructors and "static"?
body: <pre><code>class test
  {
      test() {
          System.out.println(&quot;Constructor&quot;);
      }
  
      { System.out.println(&quot;Hai&quot;); }
  }
  
  
  public class sample
  {
      public static void main(String [] a) {
          test t = new test();        
      }
  }
  </code></pre>
  <p>In the above code, why is &quot;Hai&quot; printed <em><strong>before</strong></em> the test() constructor is called?</p>
  <p>The test() constructor in the test class is above the &quot;Hai&quot; statement and should be called first, right?</p>