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

天津河北区做网站参考消息官方网站

天津河北区做网站,参考消息官方网站,百度站长资源管理,企业邮箱 腾讯意图 保证一个类只有一个实例,并提供一个访问它的全局访问点 实现 1 懒汉式,线程不安全 public class Singleton { private static Singleton instance; private Singleton (){} public static Singleton getInstance() { if (instance null) {…

意图

保证一个类只有一个实例,并提供一个访问它的全局访问点

实现

1 懒汉式,线程不安全

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

2 懒汉模式,线程安全

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

3 饿汉式

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

4 双检锁、双重校验锁(DCL)

优点:安全且在多线程情况下保持高性能。

public class Singleton {  private volatile static Singleton singleton;  private Singleton (){}  public static Singleton getSingleton() {  if (singleton == null) {  synchronized (Singleton.class) {  if (singleton == null) {  singleton = new Singleton();  }  }  }  return singleton;  }  
}

5 登记式、静态内部类

描述:这种方式能达到双检锁方式一样的功效,但实现更简单。对静态域使用延迟初始化,应使用这种方式而不是双检锁方式。这种方式只适用于静态域的情况,双检锁方式可在实例域需要延迟初始化时使用。
这种方式同样利用了 classloader 机制来保证初始化 instance 时只有一个线程,它跟第 3 种方式不同的是:第 3 种方式只要 Singleton 类被装载了,那么 instance 就会被实例化(没有达到 lazy loading 效果),而这种方式是 Singleton 类被装载了,instance 不一定被初始化。因为 SingletonHolder 类没有被主动使用,只有通过显式调用 getInstance 方法时,才会显式装载 SingletonHolder 类,从而实例化 instance。想象一下,如果实例化 instance 很消耗资源,所以想让它延迟加载,另外一方面,又不希望在 Singleton 类加载时就实例化,因为不能确保 Singleton 类还可能在其他的地方被主动使用从而被加载,那么这个时候实例化 instance 显然是不合适的。这个时候,这种方式相比第 3 种方式就显得很合理。

public class Singleton {  private static class SingletonHolder {  private static final Singleton INSTANCE = new Singleton();  }  private Singleton (){}  public static final Singleton getInstance() {  return SingletonHolder.INSTANCE;  }  
}

6 枚举

这种方式是 Effective Java 作者 Josh Bloch 提倡的方式,是实现单例模式的最佳方法。

public class Singleton {private Singleton(){}/*** 枚举类型是线程安全的,并且只会装载一次*/private enum Singleton{INSTANCE;private final Singleton instance;Singleton(){instance = new Singleton();}private Singleton getInstance(){return instance;}}public static Singleton getInstance(){return Singleton.INSTANCE.getInstance();}
}

以上例子引用自:https://www.runoob.com/design-pattern/singleton-pattern.html

http://www.yayakq.cn/news/195767/

相关文章:

  • 做视频的软件模板下载网站有哪些内容云南省文山州网站建设
  • 零基础建网站wordpress 转圈加载
  • 庆阳市建设局海绵城市网站网站维护步骤
  • dede汽车资讯网站源码电子商务网站建设也管理
  • 淘宝联盟的网站管理怎么做中国铁建企业门户网站
  • wordpress的网站上海公司名字大全
  • 网站建设网站及上传网站做多语言
  • 怎么让自己的网站通过域名访问软件生命周期七个阶段
  • 南昌网站建设费用安做省民改厅网站
  • 社区网站建设工作职责引流推广团队
  • 做网站的公司盐城做外贸seo优化的上市公司
  • 学做网站需要文化嘛thea wordpress
  • 免费推广的网站平台小程序开发定制开发
  • iis7.5 网站打不开专业设计笔记本电脑
  • 如何建网站遂宁wordpress 去google
  • 合作网站seo网站微信推广怎么做
  • 网站建设套餐报价网站内容的特点
  • 太原网站建设方案策划深圳光明建设局官方网站
  • 青岛建设局网站小程序开发软件有哪些
  • 湛江专业自助建站详情长春代做网站
  • 下面哪些是用作电子商务网站开发网站域名收费
  • 网站在线问答怎么做wordpress 适合程序员主题
  • 用现成的php模板 怎么做网站网站开发有哪些书籍
  • 做视频直播的网站有哪些网店美工主要负责哪些工作
  • 做cad室内平面图的家具素材网站四川省建设厅新网站
  • 小米网站 用什么做的什么是网络营销促销
  • a站app下载制作app软件的公司
  • 网站权重降低痞子 wordpress
  • 汕头建站模板搭建wordpress默认编辑器增强
  • 建设网站文件夹的名字河北省最大的网页设计公司