单例模式的懒汉式 和饿汉式

2021-04-06  本文已影响0人  垂直居中的句号

1、懒汉式,在第一次调用的时候实例化自己,懒汉式单例的实现没有考虑线程安全问题,它是线程不安全的,

//懒汉式单例类.在第一次调用的时候实例化自己

public class Singleton {

    private Singleton() {}

    private static Singleton single=null;

    //静态工厂方法

    public static Singleton getInstance() {

        if (single == null) {

            single = new Singleton();

        }

        return single;

    }

}

2.饿汉式单例类.在类初始化时,已经自行实例化 饿汉式在类创建的同时就已经创建好一个静态的对象供系统使用,以后不再改变,所以天生是线程安全的

//饿汉式单例类.在类初始化时,已经自行实例化

public class Singleton1 {

    private Singleton1() {}

    private static final Singleton1 single = new Singleton1();

    //静态工厂方法

    public static Singleton1 getInstance() {

        return single;

    }

}

上一篇 下一篇

猜你喜欢

热点阅读