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将无法保证单例的唯一性。 * */
单例设计模式的设计——懒汉式
最新推荐文章于 2023-03-10 15:41:36 发布