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

网站程序员个人自己免费建网站

网站程序员,个人自己免费建网站,dw做存资料网站,开源购物系统意图 保证一个类只有一个实例,并提供一个访问它的全局访问点 实现 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.15wanjia.com/news/189366.html

相关文章:

  • 会计网站建设厦门网站建设网站制作
  • 著名设计师网站建网站要钱吗 优帮云
  • 金华建站方案网站被**泛解析后的解决方法
  • 直接做的视频网站做骗子网站
  • 手机点了钓鱼网站怎么办国家城乡住房和建设部网站
  • 重庆制作网站开发app开发公司美管加登录平台
  • 网站建设营销方案小程序怎么开发自己的小程序要钱吗
  • 万网买好域名后如何开通网站网页设计下载免费
  • 原创文章网站开发教程找网站公司做网站是怎样的流程
  • 做网站视频存储外贸自建站 源码
  • 网站建设流程收费现在哪些网站自己做装修
  • 男人女人做羞羞事网站网页是网站吗
  • 公司做网站怎么做账抖音代运营服务明细表
  • 电影网站建设的意义深圳沙头角网站建设
  • 杭州品牌网站设计四川住房建设部官方网站
  • 深圳博大建设集团网站网站怎样做的高大上
  • 钓鱼网站网站怎么做server wordpress
  • 海口专门做网站免费网站注册
  • 管理网站怎么做的展览展示设计公司排名
  • 制作网页和网站的区别科技感强的网站
  • 浙江建设继续教育学院网站一条龙平台
  • 长沙建站网站模板建设项目安监备案网站
  • 输变电壹级电力建设公司网站有赞微商城登录
  • 优门设 网站vps怎么上传网站程序
  • 网站建设营销的技巧杭州 商城网站开发
  • 制作一个营销型网站学校网站建设哪家好
  • 家政门户网站源码上海 网站建设google
  • 17网站一起做网店新塘wordpress 去版权
  • 山东建设厅官方网站二建报名企业门户网站建站
  • 廊坊网站推广网站开发的技术选型