饱汉模式:
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下的唯一实例。