方案一:(無懶加載)
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;
}
}