美文网首页
单例模式

单例模式

作者: MrH_永无BUG | 来源:发表于2021-01-31 19:51 被阅读0次

    在我们的开发中,有很多地方会用到单例模式,那么会写基本的单例模式使我们基本的素养,如果说现在不会手写单例模式的,那么一定是不合格的开发人员,下面就是单例模式的两种模式,一种是饿汉模式,另外一种是懒汉模式

    package 单例模式;
    import java.io.Serializable;
    //饿汉模式
    public class Student implements Serializable {
        private Student() {  //这里将构造器私有化  目的就是禁止其他程序创建该类的对象,同时也是在提醒其他人这里用的是单例模式,
                             //不要随意修改
        }
        private static final Student instance = new Student();  //这里用static是该类一加载的时候就创建其对象
        public static Student getInstance() {
            return instance; //提供一个方法供其得到其对象
        }
    }
    
    //懒汉模式
    package 单例模式;
    public class LazyMan {
        private LazyMan(){
        };
        public volatile static  LazyMan lazyMan;  //这里用到了volatile关键字是为了防止指令重排
        public static LazyMan getInstance(){
            if (lazyMan==null){   //这里用到了双重检测,以防在高并发的情况下出现多次创建对象的情况
                synchronized (LazyMan.class){
                    if (lazyMan==null){
                        lazyMan=new LazyMan();
                    }
                }
            }
            return lazyMan;
        }
    }
    

    以上就是两种模式的基本写法!

    相关文章

      网友评论

          本文标题:单例模式

          本文链接:https://www.haomeiwen.com/subject/sigrtltx.html