Java 单例模式的几种实现方式

单例模式定义:确保一个类只有一个实例,并且自行实例化。

第一种(懒汉,线程不安全):

public class Singleton1 {
    private static Singleton1 instance;

    private Singleton1() {
    }

    public static Singleton1 getInstance() {
        if (instance == null) {
            instance = new Singleton1();
        }
        return instance;
    }
}

第二种(懒汉,线程安全):

public class Singleton2 {
    private static Singleton2 instance;

    private Singleton2() {
    }
    public static synchronized Singleton2 getInstance() {

        if (instance == null) {
            instance = new Singleton2();
        }
        return instance;
    }
}

第三种(饿汉):

public class Singleton3 {
    private static Singleton3 instance = new Singleton3();

    private Singleton3() {
    }

    public static Singleton3 getInstance() {
        return instance;
    }
}

还有好几种方式先写最常见的三种。

猜你喜欢

转载自blog.csdn.net/tmaczt/article/details/82709539