public class HungrySingleton { private HungrySingleton() { } private static HungrySingleton hungrySingleton = new HungrySingleton(); public static HungrySingleton getInstance(){ return hungrySingleton; } }
public class DoubleSingleton { private DoubleSingleton() { } private static volatile DoubleSingleton doubleSingleton; public static DoubleSingleton getInstance(){ if (doubleSingleton == null) { synchronized (DoubleSingleton.class) { if (doubleSingleton == null) { doubleSingleton = new DoubleSingleton(); } } } return doubleSingleton; } }
public class StaticInnerClassSingleton { private StaticInnerClassSingleton() { } private static class InnerClassSingleton{ private static StaticInnerClassSingleton staticInnerClassSingleton = new StaticInnerClassSingleton(); } public static StaticInnerClassSingleton getInstance(){ return InnerClassSingleton.staticInnerClassSingleton; } }