單例模式
@import url(http://www.aygfsteel.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); 飽漢模式:package com.jerry.design.singleton;
public class FullSingle {
private static FullSingle instance = null;
private FullSingle(){
}
public synchronized static FullSingle getIntance(){
if(instance==null){
instance = new FullSingle();
}
return instance;
}
}
餓漢模式:
package com.jerry.design.singleton;
public class HungrySingle {
private static HungrySingle instance = new HungrySingle();
private HungrySingle(){
}
public static HungrySingle getIntance(){
return instance;
}
}
package com.jerry.design.singleton;
public class Test {
public static void main(String[] args) {
for(int i=0;i<=10;i++){
System.out.println(FullSingle.getIntance());
System.out.println(HungrySingle.getIntance());
}
// com.jerry.design.singleton.FullSingle@3487a5cc
// com.jerry.design.singleton.HungrySingle@eb42cbf
// com.jerry.design.singleton.FullSingle@3487a5cc
// com.jerry.design.singleton.HungrySingle@eb42cbf
// com.jerry.design.singleton.FullSingle@3487a5cc
// com.jerry.design.singleton.HungrySingle@eb42cbf
// com.jerry.design.singleton.FullSingle@3487a5cc
// com.jerry.design.singleton.HungrySingle@eb42cbf
// com.jerry.design.singleton.FullSingle@3487a5cc
// com.jerry.design.singleton.HungrySingle@eb42cbf
// com.jerry.design.singleton.FullSingle@3487a5cc
// com.jerry.design.singleton.HungrySingle@eb42cbf
// com.jerry.design.singleton.FullSingle@3487a5cc
// com.jerry.design.singleton.HungrySingle@eb42cbf
// com.jerry.design.singleton.FullSingle@3487a5cc
// com.jerry.design.singleton.HungrySingle@eb42cbf
// com.jerry.design.singleton.FullSingle@3487a5cc
// com.jerry.design.singleton.HungrySingle@eb42cbf
// com.jerry.design.singleton.FullSingle@3487a5cc
// com.jerry.design.singleton.HungrySingle@eb42cbf
// com.jerry.design.singleton.FullSingle@3487a5cc
// com.jerry.design.singleton.HungrySingle@eb42cbf
}
}
總結: 保持單jvm下的唯一實例。