title: What is the purpose of the {} outside of any methods?
body: <p>I accidently made a pair of {} outside of all method and worked.</p>
  
  <pre><code>public static void main(String[] args) {
      System.out.println("ddd");
  }
  
  {
      System.out.println("ttt");
  }
  </code></pre>
  
  <p>Of course if you run this code the result is "ddd" and it writes "ttt" only if I create a new instance of it.  </p>
  
  <p>And if I make it <code>static {System.out.println("ttt");}</code> it works as designed and the result is "ttt" then "ddd"</p>
  
  <p><strong>Is there any practical use of this? Why would anyone use it with contructor or without a written constructor?</strong></p>
  
  <p>My impressions are: it seems working, but smells like bad and strange practice. Am I right?</p>