title: Implementing Singleton with an Enum (in Java)
body: <p>I have read that it is possible to implement <code>Singleton</code> in Java using an <code>Enum</code> such as:</p>
  
  <pre><code>public enum MySingleton {
       INSTANCE;   
  }
  </code></pre>
  
  <p>But, how does the above work? Specifically, an <code>Object</code> has to be instantiated. Here, how is <code>MySingleton</code> being instantiated? Who is doing <code>new MySingleton()</code>?</p>