public class Singleton1 {
private static Singleton1 singleton1 = new Singleton1();
private Singleton1(){}
public static Singleton1 getIntance(){
return singleton1;
}
public static void doSomething(){
}
}
public class Singleton2 {
private static Singleton2 singleton2 = null;
private Singleton2(){}
public static Singleton2 getSingleton2(){
if (singleton2 == null){
singleton2 = new Singleton2();
}
return singleton2;
}
}
public class Singleton3 {
private volatile static Singleton3 singleton3;
private Singleton3(){}
public static Singleton3 getSingleton3(){
if (singleton3 == null){
synchronized (Singleton3.class){
if (singleton3 == null){
singleton3 = new Singleton3();
}
}
}
return singleton3;
}
}
public class Singleton4 {
private Singleton4(){}
public static Singleton4 getSingleton4(){
return SingleHolder.intance;
}
private static class SingleHolder{
private static Singleton4 intance = new Singleton4();
}
}