单例设计模式的设计——懒汉式

package SingleInstanceModel;

/**
 * Created by JYM on 2019/1/8
 * 单例设计模式:懒汉式
 * 所谓懒汉式就是在使用类实例的时候再去创建(用时创建),这样就可以避免类在初始化时提前创建
 * */

//final 不允许被继承
public final class Singleton_1
{
    //实例变量
    private byte[] data = new byte[1024];

    //定义实例,但是不直接初始化
    private static Singleton_1 instance = null;

    private Singleton_1()
    {
    }

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


/**
 * Singleton的类变量instance=null,因此当Singleton.class被初始化的时候instance并不会被实例化,在getInstance方法中会判断
 * instance实例是否被实例化,看起来没有什么问题,但是将getInstance方法放在多线程环境下进行分析,则会导致instance被实例化一次以上
 * ,并不能保证单例的唯一性。
 * 例如:两个线程同时看到instance=null,那么instance将无法保证单例的唯一性。
 * */

你可能感兴趣的:(Java基础)