title: Singleton instantiation
body: <p>Below show is the creation on the singleton object.</p>
  
  <pre><code>public class Map_en_US extends mapTree {
  
      private static Map_en_US m_instance;
  
      private Map_en_US() {}
  
      static{
          m_instance = new Map_en_US();
          m_instance.init();
      }
  
      public static Map_en_US getInstance(){
          return m_instance;
      }
  
      @Override
      protected void init() {
          //some code;
      }
  }
  </code></pre>
  
  <p>My question is what is the reason for using a static block for instantiating. i am familiar with below form of instantiation of the singleton.</p>
  
  <pre><code>public static Map_en_US getInstance(){
      if(m_instance==null)
        m_instance = new Map_en_US();
  }
  </code></pre>