title: Singleton pattern (Bill Pugh's solution)
body: <p>I'm reading wiki about the singleton pattern and I'm not sure if I understand this: <a href="https://en.wikipedia.org/wiki/Initialization-on-demand_holder_idiom" rel="noreferrer">https://en.wikipedia.org/wiki/Initialization-on-demand_holder_idiom</a> part of it correctly.</p>
  
  <p>So to make it simple: <strong>Why is Bill Pugh's solution better than the example above?</strong></p>
  
  <p>Is it because a static class is not load by the VM before it's actually used or something like this, so we don't create the object before we turn to the getInstance() method?
  Also is that method thread safe only to the extent of initializing the object?</p>