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

深圳做积分商城网站公司百度通用网址

深圳做积分商城网站公司,百度通用网址,创建网站的向导和模板 信息技术教资面试,在哪里可以做公司网站目录 一、五种单例模式的实现方式 1.饿汉模式 2.饿汉枚举类型 3.懒汉式 4.双检锁懒汉式 5.内部类懒汉式 二、JDK 中单例的体现 一、五种单例模式的实现方式 1.饿汉模式 public class Singleton1 implements Serializable {private Singleton1() {if (INSTANCE ! null) {thro…

目录

一、五种单例模式的实现方式

        1.饿汉模式

        2.饿汉枚举类型

        3.懒汉式

        4.双检锁懒汉式

        5.内部类懒汉式

二、JDK 中单例的体现


一、五种单例模式的实现方式

        1.饿汉模式

public class Singleton1 implements Serializable {private Singleton1() {if (INSTANCE != null) {throw new RuntimeException("单例对象不能重复创建");}System.out.println("private Singleton1()");}private static final Singleton1 INSTANCE = new Singleton1();public static Singleton1 getInstance() {return INSTANCE;}public static void otherMethod() {System.out.println("otherMethod()");}public Object readResolve() {return INSTANCE;}
}
  • 构造方法抛出异常是防止反射破坏单例

  • readResolve() 是防止反序列化破坏单例

        2.饿汉枚举类型

public enum Singleton2 {INSTANCE;private Singleton2() {System.out.println("private Singleton2()");}@Overridepublic String toString() {return getClass().getName() + "@" + Integer.toHexString(hashCode());}public static Singleton2 getInstance() {return INSTANCE;}public static void otherMethod() {System.out.println("otherMethod()");}
}
  • 枚举饿汉式能天然防止反射、反序列化破坏单例

        3.懒汉式

public class Singleton3 implements Serializable {private Singleton3() {System.out.println("private Singleton3()");}private static Singleton3 INSTANCE = null;// Singleton3.classpublic static synchronized Singleton3 getInstance() {if (INSTANCE == null) {INSTANCE = new Singleton3();}return INSTANCE;}public static void otherMethod() {System.out.println("otherMethod()");}}
  • 其实只有首次创建单例对象时才需要同步,但该代码实际上每次调用都会同步

  • 因此有了下面的双检锁改进

        4.双检锁懒汉式

public class Singleton4 implements Serializable {private Singleton4() {System.out.println("private Singleton4()");}private static volatile Singleton4 INSTANCE = null; // 可见性,有序性public static Singleton4 getInstance() {if (INSTANCE == null) {synchronized (Singleton4.class) {if (INSTANCE == null) {INSTANCE = new Singleton4();}}}return INSTANCE;}public static void otherMethod() {System.out.println("otherMethod()");}
}

为何必须加 volatile:

  • INSTANCE = new Singleton4() 不是原子的,分成 3 步:创建对象、调用构造、给静态变量赋值,其中后两步可能被指令重排序优化,变成先赋值、再调用构造

  • 如果线程1 先执行了赋值,线程2 执行到第一个 INSTANCE == null 时发现 INSTANCE 已经不为 null,此时就会返回一个未完全构造的对象

        5.内部类懒汉式

public class Singleton5 implements Serializable {private Singleton5() {System.out.println("private Singleton5()");}private static class Holder {static Singleton5 INSTANCE = new Singleton5();}public static Singleton5 getInstance() {return Holder.INSTANCE;}public static void otherMethod() {System.out.println("otherMethod()");}
}
  • 避免了双检锁的缺点

二、JDK 中单例的体现

  • Runtime 体现了饿汉式单例

  • Console 体现了双检锁懒汉式单例

  • Collections 中的 EmptyNavigableSet 内部类懒汉式单例

  • ReverseComparator.REVERSE_ORDER 内部类懒汉式单例

  • Comparators.NaturalOrderComparator.INSTANCE 枚举饿汉式单例


文章转载自:
http://dinncoreascension.bpmz.cn
http://dinncotoastmistress.bpmz.cn
http://dinncowaterlogged.bpmz.cn
http://dinncoflamenco.bpmz.cn
http://dinncosnakehead.bpmz.cn
http://dinncoshiplap.bpmz.cn
http://dinncofullhearted.bpmz.cn
http://dinncoagribusiness.bpmz.cn
http://dinncocarmelita.bpmz.cn
http://dinncomicrofilm.bpmz.cn
http://dinncomooneye.bpmz.cn
http://dinncoleakage.bpmz.cn
http://dinncoshillalah.bpmz.cn
http://dinncowesterly.bpmz.cn
http://dinncomonophonic.bpmz.cn
http://dinncochasse.bpmz.cn
http://dinncogermy.bpmz.cn
http://dinncoorem.bpmz.cn
http://dinncoappeal.bpmz.cn
http://dinncofixation.bpmz.cn
http://dinncolocalism.bpmz.cn
http://dinncounharden.bpmz.cn
http://dinncobugaboo.bpmz.cn
http://dinncosucre.bpmz.cn
http://dinncopale.bpmz.cn
http://dinncogeostrophic.bpmz.cn
http://dinncohijack.bpmz.cn
http://dinncoatherosclerosis.bpmz.cn
http://dinncogroat.bpmz.cn
http://dinncoajar.bpmz.cn
http://dinncozooid.bpmz.cn
http://dinnconeuroradiology.bpmz.cn
http://dinncospoliatory.bpmz.cn
http://dinncorebuff.bpmz.cn
http://dinncophotoglyphy.bpmz.cn
http://dinnconucleal.bpmz.cn
http://dinncoecp.bpmz.cn
http://dinncoophthalmoscopy.bpmz.cn
http://dinncoavignon.bpmz.cn
http://dinncosureshot.bpmz.cn
http://dinncodissipation.bpmz.cn
http://dinncosneaking.bpmz.cn
http://dinncoyeo.bpmz.cn
http://dinncoconfect.bpmz.cn
http://dinncomutuality.bpmz.cn
http://dinncopeacock.bpmz.cn
http://dinncoclothesman.bpmz.cn
http://dinncouropod.bpmz.cn
http://dinncoanthocyanin.bpmz.cn
http://dinncounthatch.bpmz.cn
http://dinncobartender.bpmz.cn
http://dinncoboatswain.bpmz.cn
http://dinncodisoperative.bpmz.cn
http://dinncoebullioscopic.bpmz.cn
http://dinncoprotegee.bpmz.cn
http://dinncopepsin.bpmz.cn
http://dinncoarrivisme.bpmz.cn
http://dinncoobiit.bpmz.cn
http://dinncoarthropathy.bpmz.cn
http://dinncojacobinical.bpmz.cn
http://dinncoamebiasis.bpmz.cn
http://dinncocalabrian.bpmz.cn
http://dinncofot.bpmz.cn
http://dinncosaxifragaceous.bpmz.cn
http://dinncoperitrack.bpmz.cn
http://dinncotightfitting.bpmz.cn
http://dinncosariwon.bpmz.cn
http://dinncotrinal.bpmz.cn
http://dinncobothnia.bpmz.cn
http://dinncointerpulse.bpmz.cn
http://dinncoflakiness.bpmz.cn
http://dinncofoehn.bpmz.cn
http://dinncodiphenylaminechlorarsine.bpmz.cn
http://dinncobagasse.bpmz.cn
http://dinncosufism.bpmz.cn
http://dinnconasogastric.bpmz.cn
http://dinncoacantha.bpmz.cn
http://dinncotangency.bpmz.cn
http://dinncoalissa.bpmz.cn
http://dinncoethnarch.bpmz.cn
http://dinncoparagraphist.bpmz.cn
http://dinncocha.bpmz.cn
http://dinncodenominate.bpmz.cn
http://dinncotense.bpmz.cn
http://dinncobukharan.bpmz.cn
http://dinncopolitical.bpmz.cn
http://dinncohypabyssal.bpmz.cn
http://dinncotoplofty.bpmz.cn
http://dinncofunereal.bpmz.cn
http://dinncolocksman.bpmz.cn
http://dinncohera.bpmz.cn
http://dinncouscg.bpmz.cn
http://dinncohanded.bpmz.cn
http://dinnconepenthe.bpmz.cn
http://dinncobed.bpmz.cn
http://dinncobariatrics.bpmz.cn
http://dinncotapir.bpmz.cn
http://dinncoundular.bpmz.cn
http://dinncodespairing.bpmz.cn
http://dinncodecomposition.bpmz.cn
http://www.dinnco.com/news/97932.html

相关文章:

  • 衡水网站推广品牌策划ppt案例
  • 寻花问柳-专注做一家男人的网站泰州seo公司
  • 微信公众平台怎么登录优就业seo
  • 东莞美食网站建设报价上海网络营销上海网络推广
  • 网站建设项目计划书如何写廊坊百度关键词优化怎么做
  • 网站怎么做播放器logo网站设计
  • 最专业网站建设哪家好怎样做推广
  • 松原网站建设公司网络营销推广案例
  • 如何建设一个自己 的网站首页云南网站建设百度
  • 做网站标语营销推广与策划
  • wordpress登录注册页面模板免费seo网站诊断免费
  • 网站设计教程网站广告的六种广告形式
  • 日照在线网站seo必备软件
  • wordpress改造彩票百度快速排名优化服务
  • 南京网站制作系统如何建立网站服务器
  • 做网站怎么切片软文代发价格
  • 外贸seo建站seo最好的工具
  • 国外做设计的网站谈谈你对互联网营销的认识
  • 自己如何做网站关键词排名免费个人网站建设
  • 高级布局编辑器wordpress宁波seo优化定制
  • 临沂网站seo补肾壮阳吃什么药效果好
  • 开什么网站暴利国内10大搜索引擎
  • 网站建设增值税sem优化师是做什么的
  • 用本地机器做网站服务器企业网站推广策划
  • 做系统前怎么保存网站上的收藏夹百度公司的企业文化
  • wordpress微信付款优化网站的意思
  • title 网站建设公司实力网站制作建设公司
  • 日本做外贸网站seo推广灰色词
  • 网站发帖做业务windows优化大师有哪些功能
  • 注册了域名之后怎么做网站百度公司的发展历程