zoukankan      html  css  js  c++  java
  • 单例模式

    最近复习准备面试,感觉真的是查缺补漏啊。

    下面看一下单例模式,基本思想就是将构造器修饰符改为private,然后用一个public方法去得到类实例。

    • 双重锁定单例模式:
    public class Singleton {
        private Singleton(){}
    
        private static Singleton instance;
    
        private static Object obj = new Object();
    
        public static Singleton getInstance() {
            if (instance==null){//先判断实例是否存在,不存在加锁
                synchronized (obj) {
                    if (instance == null){//如果两个线程的instance都为null,都会进入第一个if,
                        instance = new Singleton();//这时候一个线程加锁,另一个线程等待释放锁,然后new了一个实例,这时候又两个实例,所以要判断两次null
                    }
                }
            }
            return instance;
        }
    }
    
    
    • 内部类单例模式
    public class Singleton {
        private static class SingletonHolder{
            private static final Singleton instance = new Singleton();
        }
        private Singleton(){}
        public static final Singleton getInstance(){
            return SingletonHolder.instance;
        }
    }
    
  • 相关阅读:
    FastAPI框架
    bitmap去重与布隆过滤器
    MongoDB
    分布式爬虫
    scrapy 请求传参
    Scrapy 对接selenium
    Scrapy 去重源码分析
    [Python]网络小说爬取、爬虫
    学习进度报告【第八周】
    [opencv]图像处理-边缘检测
  • 原文地址:https://www.cnblogs.com/bingo2-here/p/8990081.html
Copyright © 2011-2022 走看看