title: Regarding static holder singleton pattern
body: <p>I have developed singleton in many ways depending upon the condition like volatile/lazy singleton, eager singleton, normal singleton and through Enum also, but specifically I want to know about static holder pattern singleton shown below.</p>
  
  <pre><code>public static class Singleton {
      private static class InstanceHolder {
          public static Singleton instance = new Singleton();
      }
  
      private Singleton(){}
  
      public static Singleton getInstance() { 
          return InstanceHolder.instance;
      }
  }
  </code></pre>
  
  <p>Please advise under which conditions it is beneficial and what are its benefits.</p>