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;
}
}