JAVA_单例模式
枚举
public enum Demo03 {
AAAA; //初始化
private A instance;
Demo03(){
instance = new A();
}
public A getInstance(){
return instance;
}
}
class A{
}
class Test{
public static void main(String[] args) {
// Demo03 demo03 = new Demo03();
Demo03 aaaa = Demo03.AAAA;
A instance = aaaa.getInstance();
// A c = Demo03.BBB.getInstance();
// A a = Demo03.INSTANCE.getInstance();
System.out.println(instance);
// System.out.println(c);
}
}
2.懒汉
//懒汉式
public class Demo02 {
private volatile static Demo02 demo02;
private boolean flag = true;
private Demo02(){
if (flag){
flag = false;
}
else{
throw new RuntimeException("拒绝使用反射获取对象");
}
}
//双重检测锁模式
public static Demo02 getInstance(){
if (demo02 == null){
synchronized (Demo02.class) {
if (demo02 == null) {
demo02 = new Demo02();
}
}
}
return demo02;
}
}

浙公网安备 33010602011771号