Java单例模式 (懒汉、饿汉)

饿汉单例(本身线程安全、推荐使用)

//饿汉单例模式
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;
    }
}

猜你喜欢

转载自blog.csdn.net/qg_zhang/article/details/80416936