饱汉模式:
packagecom.jerry.design.singleton;
publicclassFullSingle {
privatestaticFullSingleinstance=null;
privateFullSingle(){
}
publicsynchronizedstaticFullSingle getIntance(){
if(instance==null){
instance=newFullSingle();
}
returninstance;
}
}
饿汉模式:
packagecom.jerry.design.singleton;
publicclassHungrySingle {
privatestaticHungrySingleinstance=newHungrySingle();
privateHungrySingle(){
}
publicstaticHungrySingle getIntance(){
returninstance;
}
}
packagecom.jerry.design.singleton;
publicclassTest {
publicstaticvoidmain(String[] args) {
for(inti=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下的唯一实例。