单例模式

//单例模式使用场景:1.固定配置类 2.某种比较耗费资源的连接
class Dajia{

    //知识点1:私有化构造器,使得外部无法new对象,只能从我这获取
    private Dajia(){

    }
    //使用懒汉式,懒加载,不用的时候减小内存开销
    private static Dajia dajia = null;
    //知识点2:提供工厂方法,将这个对象给你
    public static Dajia dajia(){
        //知识点3:第一判断非空的作用是提高效率,防止下一次来访问时不需要每次都锁住方法或代码块获取单例
        if(dajia == null){
            //知识点4:要用到class锁,因为当前对象未被创建,锁是为了防止出现多个实例对象
            synchronized (Dajia.class){
                //知识点5:第二重判断非空是为了防止返回空的对象
                if(dajia == null){
                    dajia = new Dajia();
                }
            }
        }
        return dajia;
    }

}
大家一起快乐学Java 文章被收录于专栏

本人2021届应届本科生毕业于浙江海洋大学,校招拿到BAT等大厂offer,本专栏的目的是分享一些校招面试过程中的一些重要知识点,以及当前比较流行的技术底层原理和一些面试问的较多的知识点的剖析。后续也会分享一些在阿里工作过程中遇到的一些问题,把问题抽象出来给出我的思路,大家可以一起来思考,互相促进,互相学习。

全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务