1 class Singleton { 2 3 private Singleton() { 4 } 5 6 private static Singleton instance; 7 8 // v0.1 9 // public static Singleton getInstance(){10 // if(instance==null) instance=new Singleton();11 // return instance;12 // }13 14 // v0.215 // //Double-check singleton 16 // public static Singleton getInstance() {17 // if(instance==null) {18 // synchronized (Singleton.class) {19 // if(instance==null) instance = new Singleton();20 // }21 // }22 // return instance;23 // }24 25 // v0.326 private static class SingletonHolder{27 static final Singleton INSTANCE=new Singleton();28 }29 30 public static Singleton getInstance(){31 return SingletonHolder.INSTANCE;32 }33 34 }