单例模式之“饿汉式”和“懒汉式”

 饿汉式:

public class TestSingleton {
    public static void main(String[] args) {
       Singleton s1 =  Singleton.getInstance();
       Singleton s2 =  Singleton.getInstance();
       System.out.println(s1==s2);
    }
}

class Singleton{
    private Singleton() {
        
    }
    private static Singleton instance = new Singleton();

    public static Singleton getInstance() {
        return instance;
    }

}

懒汉式:

public class TestSingleton1 {
 

    public static void main(String[] args) {
        Singleton1 s1 =  Singleton1.getInstance();
        Singleton1 s2 =  Singleton1.getInstance();
        System.out.println(s1==s2);
    }
}
class Singleton1{
    //1.私有化构造器
    private Singleton1(){

    }
    private static Singleton1 instance;

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

get方法设置static的原因就是让类来进行调用

类 . 静态方法   获取类的唯一的一个实例

猜你喜欢

转载自blog.csdn.net/qq_16246279/article/details/85006431