设计模式

简介: 设计模式

1、单例模式

饿汉模式

优点:执行效率高,性能高,没有任何的锁

缺点:某些情况下,可能会造成内存的浪费

public class MyStaticHungrySingleton {
    private static final MyStaticHungrySingleton myStaticHungrySingleton;
    static{
        myStaticHungrySingleton = new MyStaticHungrySingleton();
    }
    private MyStaticHungrySingleton(){}
    public MyStaticHungrySingleton getInstance(){
        return myStaticHungrySingleton;
    }
}<br><br>public class MyHungrySingleton {<br>    private static final MyHungrySingleton myHungrySingleton = new MyHungrySingleton();<br><br>    private MyHungrySingleton(){}<br><br>    private MyHungrySingleton getInstance(){<br>        return myHungrySingleton;<br>    }<br>}

懒汉式单例

优点:节省内存

缺点:性能下降

public class LazySimpleSingletion {
    private static LazySimpleSingletion instance;
    private LazySimpleSingletion(){}
    public synchronized static LazySimpleSingletion getInstance(){
        if(instance == null){
            instance = new LazySimpleSingletion();
        }
        return instance;
    }
}
//性能下降
public class LazyDoubleCheckSingletion {
    private volatile static LazyDoubleCheckSingletion instance;
    private LazyDoubleCheckSingletion(){}
    public static LazyDoubleCheckSingletion getInstance(){
        //检查是否要阻塞
        if(instance==null){
            synchronized (LazyDoubleCheckSingletion.class){
                //检查是否要创建实例
                if(instance==null){
                    instance = new LazyDoubleCheckSingletion();
                }
            }
        }
        return instance;
    }
}
//指令重排序
  
目录
相关文章
|
JavaScript 关系型数据库 MySQL
fastadmin 部署phpstudy,初步学习fastadmin,保姆级详细讲解
fastadmin 部署phpstudy,初步学习fastadmin,保姆级详细讲解
693 0
Idea单步调试快速跳过后面的断点-Mute Breakpoints 快速清空所有的断点
https://zhengyz.blog.csdn.net/article/details/128072266?spm=1001.2014.3001.5502
Idea单步调试快速跳过后面的断点-Mute Breakpoints 快速清空所有的断点
|
监控 Linux
在Linux中,如何进行系统性能瓶颈分析?
在Linux中,如何进行系统性能瓶颈分析?
|
10月前
|
存储 小程序 API
深入调查研究Memos
【11月更文挑战第1天】
204 7
|
12月前
|
网络协议 安全
QT多线程
本文详细介绍了在Qt中如何正确使用QThread以及信号槽跨线程的使用方式,包括线程的正确退出方法和QObject在不同线程中创建子对象时可能遇到的问题。同时,文章还提供了相关博客和资料的链接,用于进一步学习和参考。
252 3
|
安全 关系型数据库 Linux
高危漏洞CVE-2024-38077的修复指南
根据2024年8月9日,国家信息安全漏洞共享平台(CNVD)收录了Windows远程桌面许可服务远程代码执行漏洞(CNVD-2024-34918,对应CVE-2024-38077)。未经身份认证的攻击者可利用漏洞远程执行代码,获取服务器控制权限。目前,该漏洞的部分技术原理和概念验证伪代码已公开,厂商已发布安全更新完成修复。CNVD建议受影响的单位和用户安全即刻升级到最新版本。
|
11月前
|
小程序 数据可视化 开发工具
HTML我帮您打造拖拽可视化的WEUI小程序工具
HTML我帮您打造拖拽可视化的WEUI小程序工具
206 0
|
文字识别 API 计算机视觉
个人和企业都是通过哪些方式进行实名认证的?
随着国家对网络实名制的落实,实名认证成为互联网平台不可缺少的服务,实名认证都需要对接天眼数聚API这样的数据服务商进行身份验证比对,认证功能都是基于公安部接口、银联接口、运营商接口的认证以及工商部门的企业认证。
595 0
个人和企业都是通过哪些方式进行实名认证的?
|
Linux Go iOS开发
安装 Wails
安装 Wails
310 0
|
人工智能 编解码 算法