The instance of class Singleton will be instantiated when the method getInstance() was called. I wonder why i can instantiate outer class from the static inner class?
public class Singleton{
   private Singleton(){}
   private static class SingletonHolder{
      private static Singleton INSTANCE = new Singleton();
   }
   public static Singleton getInstance(){
      return SingletonHolder.INSTANCE;
   }
}
 
    