当前位置: 首页 > wzjs >正文

网站发布与推广鞍山建立公司网站的步骤

网站发布与推广,鞍山建立公司网站的步骤,做网站怎么写预算,懂的建设网站参考笔记:深入理解Java设计模式:单例模式及其饿汉式与懒汉式的对比,-CSDN博客 目录 1.什么是设计模式 2.经典设计模式 3.单例设计模式(static属性/方法经典使用场景 ) 3.1 饿汉式单例模式 3.2 懒汉式单例模式 4.补充 1.什么…

参考笔记:深入理解Java设计模式:单例模式及其饿汉式与懒汉式的对比,-CSDN博客

目录

1.什么是设计模式

2.经典设计模式

3.单例设计模式(static属性/方法经典使用场景 )

3.1 饿汉式单例模式

3.2 懒汉式单例模式

4.补充


1.什么是设计模式

设计模式是在大量的实践中总结和理论化之后优的代码结构、编程风格、以及解决问题的思考方式

2.经典设计模式

经典的设计模式共 23 种 

① 创建型模式,共 5 种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式

② 结构性模式,共 7 种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式

③ 行为型模式,共 11 种:策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式


3.单例设计模式(static属性/方法经典使用场景 )

单例设计模式:采取一定的方法保证在整个软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法

单例设计模式主要有以下三个特点:

① 只能有一个实例
② 必须自己创建自己的唯一实例  
③ 必须给所有其他对象提供这一实例

3.1 饿汉式单例模式

① 特点:立即加载,类加载时就会把 single 创建完毕

② 优点:实现简单,不会有多线程安全问题

③ 缺点:当类加载时,会初始化 static 变量,静态变量被创建并分配内存空间。从这以后,这个 sttaic 的实例便一直占着这块内存,直到类被卸载时,静态变量被销毁,并解释所占用的内存空间。因此饿汉式单例模式在特定条件下会耗费内存

public class Test {public static void main(String[] args) {Singleton single1 = Singleton.getInstance();Singleton single2 = Singleton.getInstance();System.out.println(single1==single2);//trueSystem.out.println(single1);System.out.println(single2);}
}//饿汉式单例模式
class Singleton {private String name;// 1.私有化构造器,防止直接在其他类new对象private Singleton(String name) {this.name = name;}// 2.内部提供一个当前类的实例// 4.为了能够在静态方法getInstance中返回变量,single也必须静态化(静态方法只能调用静态属性/方法)private static Singleton single = new Singleton("小马");// 3.提供公共的静态的方法,返回当前类的对象public static Singleton getInstance() {return single;}@Overridepublic String toString() {return "Singleton{" +"name='" + name + '\'' +'}';}
}

3.2 懒汉式单例模式

先看代码,后面再总结

public class Test {public static void main(String[] args) {//single1和single2是同一对象Singleton single1 = Singleton.getInstance();Singleton single2 = Singleton.getInstance();System.out.println(single1==single2);//trueSystem.out.println(single1);System.out.println(single2);}
}//懒汉式单例模式
class Singleton {// 1.私有化构造器private Singleton() {}// 2.内部提供一个当前类的实例// 4.此实例也必须静态化private static Singleton single;// 3.提供公共的静态的方法,返回当前类的对象public static Singleton getInstance() {if(single == null) {single = new Singleton();}return single;}
}
/*输出结果
true
Singleton@1b6d3586
Singleton@1b6d3586
*/

① 特点:延迟加载,只有在调用静态方法 getInstancesingle 才被分配内存空间

② 优点:实现简单

    (1)饿汉式在类加载时就创建了对象实例,但是可能这个对象后面没有用或者用的少,就造成浪费;

    (2)懒汉式在类加载时 static 实例未被创建和分配内存空间,只有当静态方法 getInstance 第一次被调用时才返回对象,再次调用时,返回的也是上次调用的对象,因此保证了仅一个实例对象

③ 缺点:在多线程环境中,该实现方法存在线程安全问题,不能保证单例的唯一性

说明: 3 个线程同时进入 if 语句中,new3 次,破环了单例设计模式的原则 

4.补充

JavaSE 类库中,java.lang.Runtime 就是经典的单例模式,且是饿汉式的 


文章转载自:

http://pVhzlvSM.zLrrj.cn
http://DBeTCK1c.zLrrj.cn
http://uMj5sqnJ.zLrrj.cn
http://DWSWHOif.zLrrj.cn
http://jP5qiRZW.zLrrj.cn
http://nHNCUsSg.zLrrj.cn
http://6Bq2flxv.zLrrj.cn
http://uKBJzuE1.zLrrj.cn
http://esVs4clB.zLrrj.cn
http://Tk3P7rbM.zLrrj.cn
http://8jSf4C7S.zLrrj.cn
http://GoJP2rcw.zLrrj.cn
http://f3bKNwdR.zLrrj.cn
http://se94JqTQ.zLrrj.cn
http://hx2vM6MU.zLrrj.cn
http://ndVCgi1y.zLrrj.cn
http://0oZELuFw.zLrrj.cn
http://lCHwhsg9.zLrrj.cn
http://04aVFzB2.zLrrj.cn
http://5bGelPLI.zLrrj.cn
http://2RaJl4gw.zLrrj.cn
http://TmGbYSzl.zLrrj.cn
http://q88hJl7B.zLrrj.cn
http://Pxx87cYk.zLrrj.cn
http://7ER8qmLs.zLrrj.cn
http://HtZ2HTWO.zLrrj.cn
http://NVYw5Mxn.zLrrj.cn
http://F4L7cNAn.zLrrj.cn
http://ve0eE8j4.zLrrj.cn
http://nIPRdWj9.zLrrj.cn
http://www.dtcms.com/wzjs/716216.html

相关文章:

  • 网页设计的网站推荐魔方 网站建设 有限公司
  • 网站开发的乌兰察布市建设银行网站
  • 外贸网站源码怎么建汽车网站营销
  • 怎么做打鱼网站外贸功能网站建设
  • 深圳手机网站建设合肥百度搜索优化
  • 游戏网站开发计划书郑州平面设计培训速成班
  • 温州市手机网站制作哪家好做网站还是app省钱
  • 商城网站建设哪家公司好wordpress 模板 教程
  • 网站建站平台 开源世界足球排名前100名
  • 国外有没有网站是做潘多拉的wordpress 弹窗登陆
  • 网站运营托管方案设计网址有哪些
  • 如何给网站做优化代码微网站建设找哪家公司
  • 福建住房与城乡建设厅网站网站开发专业就业好不好
  • 网站建设最好公司浅笑云主机
  • 单机怎么做网站设计师分六个级别
  • 北京哪个网站建设最好上海网页制作模板
  • 黄冈网站推广都有哪些渠道做门名片设计网站
  • 网站设计需求方案山东网站建设服务
  • 网站设计思路方案百度免费推广有哪些方式
  • 兼职招聘网站警惕网站免费看手机
  • 招商网站建设大概多少钱荥阳做网站推广
  • 北京装修公司排名推荐北京seo多少钱
  • 从网络安全角度考量_写出建设一个大型电影网站规划方案阿里云域名查询系统
  • 网站服务器返回状态码404西安公司排行榜
  • 网站怎么做站群福州网站推广排名
  • 做相册的网站有哪些做写字楼的网站有哪些
  • 网站更新内容做公众号首图的网站
  • 网站建设黄荣网站建设标准简约
  • 合肥网站建设制作价格小程序怎么开发
  • 四川省住房城乡建设厅网站首页企业网站的cms