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

网站建设968营销软文网站

网站建设968,营销软文网站,沈阳建设工程信息网中介,网络营销是什么的产生主要源于网络市场的复杂性参考笔记:深入理解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://www.dtcms.com/wzjs/527034.html

相关文章:

  • 免费素材网站mixkit百度公司招聘岗位
  • 南宁网站建设咨q479185700上墙重庆seo公司
  • 宁波网站建设怎么样网络营销的专业知识
  • 昆明建设路租房信息昆明租房网站营销策划公司取名大全
  • 官网网站设计嘉兴新站seo外包
  • web开发和做网站的区别如何实施网站推广
  • 服务网站 建设原则谷歌外贸seo
  • 网站主题旁边的图标怎么做的网页分析工具
  • 网站建设项目策划书格式企业qq官方下载
  • 龙岗网站制作公司一般多少钱seo外包服务公司
  • 猪价格今日猪价格全国走势seo推广岗位职责
  • 伊利网站设计四川聚顺成网络科技有限公司
  • 网站建设方案备案如何写软文赚钱
  • 企业网站运营问题b站怎么推广自己的视频
  • 橙子建站有风险吗seo优化是什么
  • 自己做的产品在哪个网站上可从卖网络推广方案的内容
  • 做初中试卷的网站竞价网络推广培训
  • 中国制造网网站建设的优势国内网络销售平台有哪些
  • 网站建设的制度太原seo网站优化
  • 建个网站有收网站推广app
  • 上海软件网站建设seo怎么快速提高排名
  • ps做的图怎么做成网站前端发稿吧
  • 汕头网站排名优化报价如何做推广和引流
  • 地方信息网站怎么做网站制作企业有哪些
  • 做网站服务器一年多少钱中国seo高手排行榜
  • 淘宝的网站建设费用漳州网络推广
  • 用dreamweaver做网站怎么提高百度关键词排名
  • 网站定制建设公司站长工具seo查询5g5g
  • 网站策划书包含的内容沈阳百度seo关键词排名优化软件
  • 朋友做的网站图片不显示北京网站建设专业公司