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

天津重型网站建设推荐织梦 网站无法显示该页面

天津重型网站建设推荐,织梦 网站无法显示该页面,公司网站设计哪家好,wordpress 加速访问简介 单例模式:一个类有且仅有一个实例,该类负责创建自己的对象,同时确保只有一个对象被创建。 特点:类构造器私有、持有自己实例、对外提供获取实例的静态方法。 单例模式的实现方式 饿汉式 类被加载时,就会实例…

简介

单例模式:一个类有且仅有一个实例,该类负责创建自己的对象,同时确保只有一个对象被创建。

特点:类构造器私有、持有自己实例、对外提供获取实例的静态方法。

单例模式的实现方式

饿汉式

类被加载时,就会实例化一个对象并交给自己的引用,供系统使用;而且,由于这个类在整个生命周期中只会被加载一次,因此只会创建一个实例,即能够充分保证单例。

案例:

public class Singleton {private static Singleton instance = new Singleton();private Singleton() { }public static Singleton getInstance() {return instance;}
}

饿汉式比较耗费资源,因为它创建单例的时间过早,它是在类被加载的时候创建单例的

懒汉式加双重检查加锁

饿汉式的优化,只有在获取类的实例时才会创建实例。

案例:

public class SingleTon {// 使用volatile修饰,保证变量的可见性private static volatile SingleTon instance;public static SingleTon getInstance() {// 先检查实例是否存在,如果不存在才进入下面的同步块if (instance == null) {// 同步块,线程安全的创建实例synchronized (SingleTon.class) {// 再次检查实例是否存在,如果不存在才真的创建实例if (instance == null) {instance = new SingleTon();}}}return instance;}
}

饿汉式中的注意事项:

1、为什么类持有的自己的私有实例要用volatile修饰:为了保证指定变量的有序性和可见性。new一个对象的代码 SingleTon instance = new SingleTon(); 可以分解为3行伪代码:

memory=allocate();// 分配内存 相当于c的malloc
ctorInstanc(memory) //初始化对象
instance=memory //设置instance指向刚分配的地址

上面的代码在编译器运行时,可能出现重排序,从 1-2-3 变为 1-3-2,在多线程环境下就会出现问题,使用 volatile 关键字会禁止这种重排序。

2、为什么要双重锁:如果只有一个锁,很有可能两个线程都通过了 if(instance == null) 的判断,所以在进入同步代码块之后还需要再判断一次

用静态内部类来实现单例模式

案例:

public class SingleTon {private SingleTon2() { }// 用一个私有的静态内部类来存储外部类的实例,类只会被加载一次,保证单例。// 内部类只有在被调用时才会被加载,保证了延迟加载private static class SingleTonHolder {private static SingleTon2 instance = new SingleTon2();}public static SingleTon2 getInstance() {return SingleTonHolder.instance;}
}

破坏单例模式

破坏单例模式:序列化和反射可以破坏单例模式。

  • 解决序列化破坏单例的问题:在类中添加readResolve方法,返回类中的实例,可以解决通过序列化破坏单例模式的问题;
  • 解决反射破坏单例的问题:在构造方法中抛异常,可以解决通过反射破坏单例模式的问题

单例模式的使用案例

饿汉式单例模式的使用:jdk中的Runtime类,每个java程序中都只有一个Runtime实例,它代表java程序的运行环境

public class Runtime {// 类被加载时,就会实例化一个对象并交给自己的引用private static Runtime currentRuntime = new Runtime();// 返回单例对象的方法public static Runtime getRuntime() {return currentRuntime;}// 私有化的构造方法/** Don't let anyone else instantiate this class */private Runtime() {}
}

文章转载自:

http://4q3Eahbe.smmby.cn
http://cx4enGQy.smmby.cn
http://BmtjTxyL.smmby.cn
http://xY4g7cWy.smmby.cn
http://ie96AUXo.smmby.cn
http://u38jlVji.smmby.cn
http://XD2SxBOd.smmby.cn
http://D38fp6dN.smmby.cn
http://7iV37sYs.smmby.cn
http://EjLyHQcb.smmby.cn
http://SnRMR6mU.smmby.cn
http://mCAl7Jwq.smmby.cn
http://NqDKClVH.smmby.cn
http://PwuSIp5J.smmby.cn
http://1W6rEOhB.smmby.cn
http://0zCiQFVi.smmby.cn
http://1zABWWZA.smmby.cn
http://SThxSbMv.smmby.cn
http://YDP94Qbd.smmby.cn
http://jYJKbqTZ.smmby.cn
http://L316jTBC.smmby.cn
http://09lf5WRr.smmby.cn
http://5KWkNlXP.smmby.cn
http://6EHanlNy.smmby.cn
http://ALV6SrsP.smmby.cn
http://hXtLVmiT.smmby.cn
http://V3XHrVrP.smmby.cn
http://veMklkDY.smmby.cn
http://DFcLgRAL.smmby.cn
http://xPT5brav.smmby.cn
http://www.dtcms.com/wzjs/641473.html

相关文章:

  • 1小时快速搭建网站新乡网络公司推荐
  • 购物网站设计需要哪些模块兔展制作h5页面模板
  • 电商网站建设实施方案东莞建站公司速推全网天下首选
  • 最好的网站开发公司wordpress悬浮联系表
  • 官方网站建设的必要四川人力资源考试官网二建
  • 网站单页在线怎么开网页游戏平台
  • 哪些网站可以免费做产品推广东莞建设局网
  • 门户网站cms程序中建集团
  • 南阳网站建设的公司百度排名优化工具
  • 小城市门户网站建设方案详情页设计怎么收费
  • 有没有专门发布毕业设计代做网站天津设计公司排名榜
  • 相册管理网站模板下载失败国家林业工程建设协会网站
  • 2015年做哪些网站致富求个网站填空题
  • 做外贸家纺资料网站佛山建站模板搭建
  • 佛山优秀网站建设石家庄站内换乘图解
  • 网站空间10g网站特色分析
  • 如何在招聘网站上选个好公司做销售程序员给女朋友做的网站
  • 响应式做的好的网站有哪些富阳网站建设 优帮云
  • 网站的宣传推广方式wordpress适合做商城吗
  • 正规网站建设的公司中英文微信网站建设
  • 给个营销型网站菜鸟建网站
  • 做竹鼠网站最新军事新闻视频
  • wordpress源代码如何在本地编辑器谷歌seo优化是什么
  • 购物分享网站模板网站怎么做背景图片
  • 热e国产-网站正在建设中-手机版德宏北京网站建设
  • 建站平台上建设的网站可以融资吗抖音代运营怎么跟客户沟通并成交
  • 电子商务网站制作步骤邵阳优秀网站建设
  • 自己可以做类似拓者的网站吗店铺设计属于什么设计
  • ppt那个网站做的好建设网站总结
  • 网站页面维护菏泽建设集团