饿汉单例(本身线程安全、推荐使用)
//饿汉单例模式
public class Singleton1 {
private Singleton1() {
}
private static final Singleton1 single = new Singleton1();
public static Singleton1 getInstance() {
return single;
}
}
懒汉单例 需要自己处理线程安全问题
//懒汉式单例类.在第一次调用的时候实例化自己
public class Singleton {
private Singleton() {
}
private static Singleton single = null;
// 静态工厂方法 双重锁定
public static synchronized Singleton getInstance() {
if (single == null) {
synchronized (Singleton.class) {
single = new Singleton();
}
}
return single;
}
}