方案一:(无懒加载)
public class SingleInstance{
private SingleInstance(){}
private static SingleInstance instance=new SingleInstance();
public static SingleInstance getInstance(){
return instance;
}
}
public class SingleInstance{
private SingleInstance(){}
private static SingleInstance instance=new SingleInstance();
public static SingleInstance getInstance(){
return instance;
}
}
方案二:(静态内部类)
public class SingleInstance{
private SIngleInstance(){}
private static class SingleInner{
private static SingleInstance instance=new SingleInstance();
}
public static SingleInstance getInstance(){
return SingleInner.instance;
}
}
方案三(双重锁):
public class SingleInstance{
private static SingleInstance instance;
private SingleInstance(){}
public static SingleInstance getInstance(){
if(instance==null){
synchronized (SingleInstance.class){
if(instance==null){
instance=new SingleInstance();
}
}
}
}
}
public class SingleInstance{
private SingleInstance(){}
private static SingleInstance instance=new SingleInstance();
public static SingleInstance getInstance(){
return instance;
}
}