單例模式(餓漢式)
public void Demo(){
private stataic final Demo instance = new Demo();
//構造方法私有化
private Demo(){
}
public static Demo getInstance(){
return instance;
}
}
單例模式(懶漢式)
public void Demo(){
private stataic Demo instance = null ;
//構造方法私有化
private Demo(){
}
public static Demo getInstance(){
if(instance != null){
instance = new Demo();
}
return instance;
}
}
解決兩種的弊端的單例模式(雙鎖)
public void Demo(){
private static Demo d;
private static Object init_click = new Object();
//構造方法私有化
private Demo(){
}
//雙鎖:解決延遲加載問題
public static Demo getInstance(){
if(null==d){
synchronized(init_click){
if(d==null){
d = new Demo();
}
}
}
return d;
}
}