当前位置: 首页 > news >正文 中英语网站制作方法泉州网站制作设计 news 2025/11/1 10:57:28 中英语网站制作方法,泉州网站制作设计,wordpress的加密算法,建设工程竣工备案网站单例模式是面试中常考的设计模式之一 在面试中#xff0c;面试官常常会要求写出两种类型的单例模式并解释原理 本文中#xff0c;将从0到1的介绍单例模式究竟是什么 文章目录 ✍一、什么是设计模式#xff1f;✍二、单例模式是什么#xff1f;✍三、单例模式的类型**1.饿汉… 单例模式是面试中常考的设计模式之一 在面试中面试官常常会要求写出两种类型的单例模式并解释原理 本文中将从0到1的介绍单例模式究竟是什么 文章目录 ✍一、什么是设计模式✍二、单例模式是什么✍三、单例模式的类型**1.饿汉式**2.懒汉式3.优化懒汉式4.指令重排5.完整代码 ✍一、什么是设计模式 设计模式Design pattern是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问设计模式于己于他人于系统都是多赢的设计模式使代码编制真正工程化设计模式是软件工程的基石如同大厦的一块块砖石一样。项目中合理的运用设计模式可以完美的解决很多问题每种模式在现在中都有相应的原理来与之对应每一个模式描述了一个在我们周围不断重复发生的问题以及该问题的核心解决方案这也是它能被广泛应用的原因。简单说 模式在某些场景下针对某类问题的某种通用的解决方案。 场景项目所在的环境 问题约束条件项目目标等 解决方案通用、可复用的设计解决约束达到目标。 用生活中的事务来介绍 设计模式好⽐象棋中的 “棋谱”. 红⽅当头炮, ⿊⽅⻢来跳. 针对红⽅的⼀些⾛法, ⿊⽅应招的时候有⼀些固定的套路. 按照套路来⾛局势就不会吃亏. ✍二、单例模式是什么 单例模式是指在内存中只会创建且仅创建一次对象的设计模式。在程序中多次使用同一个对象且作用相同时为了防止频繁地创建对象使得内存飙升单例模式可以让程序仅在内存中创建一个对象让所有需要调用的地方都共享这一单例对象。 简单概括 单例模式能保证某个类在程序中只存在唯⼀⼀份实例而不会创建出多个实例. ✍三、单例模式的类型 单例模式具体的实现⽅式有很多. 最常⻅的是 “饿汉” 和 “懒汉” 两种. 饿汉式在类加载过程中就创建了实例。懒汉式在真正需要使用时才会创建实例。 1.饿汉式 class Singleton{private static Singleton instance new Singleton();public static Singleton getInstance(){return instance;}private Singleton(){} }类在加载时就会创建一个实例。在调用时之间返回这一实例就好。 可以简单的认为在程序启动时就创建了实例。 2.懒汉式 class Singletonlazy{public static Singletonlazy instance null;public Singletonlazy getInstance(){if ( instance null){instance new Singletonlazy();}return instance;}private Singletonlazy(){}}这是一段存在些许问题的代码不过可以直观的感受到两者之间的区别。 在接下来会对如上懒汉式代码进行优化。 3.优化懒汉式 我们先将懒汉式代码放置如下 class Singletonlazy{public static Singletonlazy instance null;public Singletonlazy getInstance(){if ( instance null){instance new Singletonlazy();}return instance;}private Singletonlazy(){}}在如上懒汉式的代码中如果在多线程情况下就会出现一些问题 在多线程中线程是抢占式执行的。 那么就会给程序带来一些问题 由于线程的抢占式执行虽说不会造成空间的浪费 但是时间的消耗确实客观存在的。 那么解决这个问题就进行加锁操作。 public Singletonlazy getInstance(){synchronized (lock){if ( instance null){instance new Singletonlazy();}}return instance;}这样加锁就是将 if 和 new 打包成一个原子操作 但是这样也会出现问题 那么如何解决这个问题呢 我们在锁的外层在添加一个判断条件 public Singletonlazy getInstance(){if (instance null) {synchronized (lock){if ( instance null){instance new Singletonlazy();}}}return instance;}注意 这里的两个if条件虽然内容一样但是意义却完全不同 第一个if是判断是否要进行加锁操作第二个if是判断是否要实例创建对象 如上代码已经解决了多线程情况下的线程安全问题。 也解决了执行效率的问题。 但是还存在一个问题 指令重排 4.指令重排 概念 为了使处理器内部的运算单元能尽量被充分利用处理器可能会对输入的代码进行乱序执行优化处理器会在计算之后将乱序执行的结果重组并确保这一结果和顺序执行结果是一致的但是这个过程并不保证各个语句计算的先后顺序和输入代码中的顺序一致。这就是指令重排序。 通俗的说就是在不改变代码逻辑的条件下通过更改指令的执行顺序来达到优化代码的效果。 举例 在这一行代码中一个创建对象实例的过程可以在指令的角度分为三步 申请内容空间调用构造方法对内存空间进行初始化把此时内存空间的地址赋值给instance引用 在指令重排的优化下 可能有 1 --》3 --》 2 1 --》2 --》 3 这样两种情况 1是一定在第一步的因为是要在保证代码逻辑的前提下才能进行指令重排。那么如何解决呢 引入volatile public static volatile Singletonlazy instance null;使用volatile关键字修饰的变量可以保证其指令执行的顺序与程序指明的顺序一致不会发生顺序变换 5.完整代码 class Singletonlazy{public static volatile Singletonlazy instance null;public static Object lock new Object();public Singletonlazy getInstance(){if (instance null) {synchronized (lock){if ( instance null){instance new Singletonlazy();}}}return instance;}private Singletonlazy(){}}以上就是本文所有内容如果对你有帮助的话点赞收藏支持一下吧 文章转载自: http://www.morning.hmgqy.cn.gov.cn.hmgqy.cn http://www.morning.lwjlj.cn.gov.cn.lwjlj.cn http://www.morning.sfmqm.cn.gov.cn.sfmqm.cn http://www.morning.rkfgx.cn.gov.cn.rkfgx.cn http://www.morning.qcslh.cn.gov.cn.qcslh.cn http://www.morning.tmjhy.cn.gov.cn.tmjhy.cn http://www.morning.nngq.cn.gov.cn.nngq.cn http://www.morning.wyctq.cn.gov.cn.wyctq.cn http://www.morning.wxfgg.cn.gov.cn.wxfgg.cn http://www.morning.gjfym.cn.gov.cn.gjfym.cn http://www.morning.swimstaracademy.cn.gov.cn.swimstaracademy.cn http://www.morning.dpgdj.cn.gov.cn.dpgdj.cn http://www.morning.jlboyuan.cn.gov.cn.jlboyuan.cn http://www.morning.pqppj.cn.gov.cn.pqppj.cn http://www.morning.cwwbm.cn.gov.cn.cwwbm.cn http://www.morning.rxlck.cn.gov.cn.rxlck.cn http://www.morning.sgtq.cn.gov.cn.sgtq.cn http://www.morning.xnyfn.cn.gov.cn.xnyfn.cn http://www.morning.nqxdg.cn.gov.cn.nqxdg.cn http://www.morning.kybpj.cn.gov.cn.kybpj.cn http://www.morning.jkzjs.cn.gov.cn.jkzjs.cn http://www.morning.cnhgc.cn.gov.cn.cnhgc.cn http://www.morning.xpzkr.cn.gov.cn.xpzkr.cn http://www.morning.xwrhk.cn.gov.cn.xwrhk.cn http://www.morning.zyytn.cn.gov.cn.zyytn.cn http://www.morning.fwcjy.cn.gov.cn.fwcjy.cn http://www.morning.ndcjq.cn.gov.cn.ndcjq.cn http://www.morning.ptlwt.cn.gov.cn.ptlwt.cn http://www.morning.jzccn.cn.gov.cn.jzccn.cn http://www.morning.nhrkl.cn.gov.cn.nhrkl.cn http://www.morning.rntgy.cn.gov.cn.rntgy.cn http://www.morning.smkxm.cn.gov.cn.smkxm.cn http://www.morning.nrchx.cn.gov.cn.nrchx.cn http://www.morning.gxeqedd.cn.gov.cn.gxeqedd.cn http://www.morning.wdqhg.cn.gov.cn.wdqhg.cn http://www.morning.qxmys.cn.gov.cn.qxmys.cn http://www.morning.ykmtz.cn.gov.cn.ykmtz.cn http://www.morning.pwxkn.cn.gov.cn.pwxkn.cn http://www.morning.lrwsk.cn.gov.cn.lrwsk.cn http://www.morning.wfmqc.cn.gov.cn.wfmqc.cn http://www.morning.pnmgr.cn.gov.cn.pnmgr.cn http://www.morning.nndbz.cn.gov.cn.nndbz.cn http://www.morning.pgmyn.cn.gov.cn.pgmyn.cn http://www.morning.cttti.com.gov.cn.cttti.com http://www.morning.wqbfd.cn.gov.cn.wqbfd.cn http://www.morning.wtdyq.cn.gov.cn.wtdyq.cn http://www.morning.chongzhanggui.cn.gov.cn.chongzhanggui.cn http://www.morning.rxhs.cn.gov.cn.rxhs.cn http://www.morning.gydth.cn.gov.cn.gydth.cn http://www.morning.jkdtz.cn.gov.cn.jkdtz.cn http://www.morning.rxhs.cn.gov.cn.rxhs.cn http://www.morning.jcrfm.cn.gov.cn.jcrfm.cn http://www.morning.jwncx.cn.gov.cn.jwncx.cn http://www.morning.rkfh.cn.gov.cn.rkfh.cn http://www.morning.gxfzrb.com.gov.cn.gxfzrb.com http://www.morning.rtqyy.cn.gov.cn.rtqyy.cn http://www.morning.zjrnq.cn.gov.cn.zjrnq.cn http://www.morning.mfsjn.cn.gov.cn.mfsjn.cn http://www.morning.lmzpk.cn.gov.cn.lmzpk.cn http://www.morning.mlpch.cn.gov.cn.mlpch.cn http://www.morning.fpxsd.cn.gov.cn.fpxsd.cn http://www.morning.srgwr.cn.gov.cn.srgwr.cn http://www.morning.pjrql.cn.gov.cn.pjrql.cn http://www.morning.jtqxs.cn.gov.cn.jtqxs.cn http://www.morning.smjyk.cn.gov.cn.smjyk.cn http://www.morning.qjfkz.cn.gov.cn.qjfkz.cn http://www.morning.hbxnb.cn.gov.cn.hbxnb.cn http://www.morning.mqtzd.cn.gov.cn.mqtzd.cn http://www.morning.jzykw.cn.gov.cn.jzykw.cn http://www.morning.lxkhx.cn.gov.cn.lxkhx.cn http://www.morning.bdgb.cn.gov.cn.bdgb.cn http://www.morning.jmdpp.cn.gov.cn.jmdpp.cn http://www.morning.lyjwb.cn.gov.cn.lyjwb.cn http://www.morning.dnqliv.cn.gov.cn.dnqliv.cn http://www.morning.pqqxc.cn.gov.cn.pqqxc.cn http://www.morning.wkqrp.cn.gov.cn.wkqrp.cn http://www.morning.kchwr.cn.gov.cn.kchwr.cn http://www.morning.bqdpy.cn.gov.cn.bqdpy.cn http://www.morning.sjjtz.cn.gov.cn.sjjtz.cn http://www.morning.tstkr.cn.gov.cn.tstkr.cn 查看全文 http://www.tj-hxxt.cn/news/267842.html 相关文章: 哈尔滨队网站网页美工要建一个网站怎么做 佛山网站建设锐艺a068优酷有wordpress插件吗 个人网站如何进行网络推广中国做网站找谁 做网站需要什么权限今天建设银行网站无法登录 建一个网站买完域名后应该怎么做住房和城乡建设部网站执业资格注册中心 物流管理网站建设深圳欧啦啦网站建设 苏州工业园区最新通告优化员工 品牌网站建设四川定制产品网站有哪些 可视化网站制作软件还有哪些数据库网站 rp做网站wordpress域名授权破解版 做网站需要执照吗西安室内设计公司排名 网站整体设计硬件开发和软件开发 做网站的资源哪里找吕梁网站定制 长沙网站制作好公司宿州网站开发建设 深圳住房和城乡建设局网站如何用 ftp上传网站 青岛高端网站制作建设化工网站的目的 洛江区住房和城乡建设局网站seo关键词优化公司推荐 做网站要搭建本地服务器么国外营销型网站 怎么做企业网站建设东莞seo建站投放 专业网站推广服务咨询首页排名优化公司 南宁网站建设优化排名wordpress 导航图片 微博优惠券网站怎么做台州本地做网站的 网站制作学费多少钱WordPress批量建站系统 网站建设服务采购方案建立网站的英文短语 网站建议公司开发网址需要多少钱 商城网页设计网站过度优化 西安做网站好的公司app 微信 网站三合一 安徽合肥做网站建筑设计公司网站模板 单页网站产品互联网行业发展现状 镜子厂家东莞网站建设做旅游网站的好处