一、单例实现方式:饿汉式
public class SingleOne {
private static final SingleOne instance = new SingleOne();
private SingleOne(){}
public static SingleOne getInstance(){
return instance;
}
}
二、单例实现方式:懒汉式
public class SingleTwo {
private static SingleTwo instance = null;
private SingleTwo(){}
public static synchronized SingleTwo getInstance(){
if(instance == null) {
instance = new SingleTwo();
}
return instance;
}
}
三、单例实现方式:静态内部类
public class SingleThree {
private static class SingleThreeInstance {
private static final SingleThree instance = new SingleThree();
}
public static SingleThree getIntance(){
return SingleThreeInstance.instance;
}
private SingleThree(){
System.out.println("SingleThree");
}
}
四、单例实现方式:双重检测
public class SingleFour {
private volatile static SingleFour instance = null;
private SingleFour(){}
public SingleFour getInstance(){
if(instance == null){
synchronized(SingleFour.class){
if(instance == null) {
instance = new SingleFour();
}
}
}
return instance;
}
}