1.两种常见的单例模式
1.1饿汉式
//线程安全,效率高,但相比懒汉式较占用内存
public class Singleton {
private Singleton(){}
private static Singleton singleton=new Singleton();
public static Singleton getInstance(){
return singleton;
}
}
1.2懒汉式
//效率低,原始懒汉式是线程不安全的
public class Singleton {
private Singleton() {}
private static Singleton singleton;
public static Singleton getInstance() {
if (singleton == null) {//提高效率
synchronized (Singleton.class) {
if (singleton == null) {//保证线程安全,即保障单例
singleton = new Singleton();
}
}
}
return singleton;
}
}