1.懒汉式
public class SingletonDemo2 {
//初始化类时,不初始化这个对象(延时加载,真正用的时候再加载)
private static SingletonDemo2 instance;
private SingletonDemo2(){}//构造方法私有化
//方法同步,调用效率低
public static synchronized SingletonDemo2 getInstance(){
if(instance == null){
instance = new SingletonDemo2();
}
return instance;
}
}
2.饿汉式
public class SingletonDemo1 {
//类初始化时立即加载这个对象(没有延时加载的优势)。加载类时,天然的是线程安全的
private static SingletonDemo1 instance = new SingletonDemo1();
private SingletonDemo1(){
}
//没有方法同步,调用效率高!
public static SingletonDemo1 getInstance(){
return instance;
}
}