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

网站备案 注册用户新塘网站建设

网站备案 注册用户,新塘网站建设,seo挂机赚钱,中国航天空间站最新消息一、单例设计模式 1.1、概述 单例模式#xff08;Singleton Pattern#xff09;是Java中最简单的设计模式之一。这种类型的设计模式属于创建者模式#xff0c;它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类#xff0c;该类负责创建自己的对象#xff0c;同…一、单例设计模式 1.1、概述 单例模式Singleton Pattern是Java中最简单的设计模式之一。这种类型的设计模式属于创建者模式它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类该类负责创建自己的对象同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式可以直接访问不需要实例化该类的对象。 1.2、应用场景 只需要一个实例例如各种Manager、各种Factory 二、单例模式的结构 2.1、单例模式主要有以下角色 单例类只能创建一个实例的类访问类使用单例类 2.2、单例模式的实现 饿汉式类加载就会导致该单例对象被创建懒汉式类加载不会导致该单例对象被创建当首次使用该对象时才会创建 2.3、单例模式-饿汉式 2.3.1、静态成员变量 public class SingletonDemo1 {// 1、私有构造方法private SingletonDemo1() {}// 2、在当前类中创建本类对象private static SingletonDemo1 instance new SingletonDemo1();// 3、对外提供获取本类实例对象的公共访问方式public static SingletonDemo1 getInstance() {return instance;} }2.3.2、静态代码块 public class SingletonDemo2 {// 1、私有构造方法private SingletonDemo2() {}// 2、在当前类中声明当前类的类型变量private static SingletonDemo2 instance;// 3、在静态代码块中进行赋值static {instance new SingletonDemo2();}// 4、对外提供获取该类对象的方法public static SingletonDemo2 getInstance() {return instance;}} 2.3.3、存在的问题 由于对象的创建是随着类的加载而创建所以存在内存浪费的问题。 2.4、单例模式-懒汉式 2.4.1、线程不安全 /*** * Description 懒汉式线程不安全* 存在的问题多线程情况下会创建多个实例*/ public class SingletonDemo3 {// 1、私有构造方法private SingletonDemo3() {}// 2、在当前类中声明当前类的类型变量private static SingletonDemo3 instance; // 这是声明了一个该类型的变量并没有进行赋值// 3、对外提供获取该类对象的方法public static SingletonDemo3 getInstance() {if (instance null) {instance new SingletonDemo3();}return instance;} } 2.4.2、线程安全 /*** Description 懒汉式线程安全* 存在的问题* 对于getInstance()方法来说绝大部分的操作都是读操作读操作是线程安全的所以我们没必要让每个线程必须持有锁才能调用该方法* 而且加锁在多线程场景下会严重影响性能。*/ public class SingletonDemo4 {// 1、私有构造方法private SingletonDemo4() {}// 2、在当前类中声明当前类的类型变量private static SingletonDemo4 instance; // 这是声明了一个该类型的变量并没有进行赋值// 3、对外提供获取该类对象的方法public static synchronized SingletonDemo4 getInstance() {if (instance null) {instance new SingletonDemo4();}return instance;}} 2.4.3、双重锁检查机制【推荐】 /*** Description 懒汉模式双重锁检查机制*/ public class SingletonDemo5 {// 1、私有构造方法private SingletonDemo5() {}/*** 2、在当前类中声明当前类的类型变量* 说明添加volatile关键字之后的双重检查锁模式是一种比较好的单例实现模式能够保证在多线程的情况下线程安全* 并且不会影响性能。*/private static volatile SingletonDemo5 instance; // 这是声明了一个该类型的变量并没有进行赋值// 3、对外提供获取该类对象的方法public static SingletonDemo5 getInstance() {// 3.1、第一次判断如果instance不为null不需要抢占资源直接返回if (instance null) {synchronized (SingletonDemo5.class) {// 3.2、第二次判断if (instance null) {instance new SingletonDemo5();}}}return instance;} }
http://www.zqtcl.cn/news/644962/

相关文章:

  • 保山市建设厅官方网站郑州建设信息网站
  • clh网站建设公司h5网站源代码
  • 做装修的网站怎么做好服装市场调网站建设的目的
  • 佛山网站建站电子工程网名又知道你是做工程
  • 桐乡网站二次开发商城购物网站建设
  • 大连微网站制作公司网页多钱
  • 郑州网站托管助企网络营销推广合作
  • 做电商网站用什么软件企业网站建设方案范本
  • o2o商城网站搭建潍坊定制网站搭建
  • 网站建设费用说明青岛网站建设方案公司
  • 佛山市建设企业网站服务机构优化seo是什么
  • 仿70网站分类目录源码市场营销策划ppt免费模板
  • 广东圆心科技网站开发网站模板设计网页程序代码
  • 网站平台定制开发一级a做爰网站下载
  • 网站如何做流媒体wordpress导出软件
  • 电商网站流程图esp8266做网站
  • 细胞医疗 网站模版免费网址软件
  • app地推网企业seo解决方案
  • php网站转移网吧手机网站模版
  • 北京建设教育网站今天的国内新闻
  • 江苏省建设银行网站天心区网站建设公司
  • 网站分享设计网站备案收费么
  • 手机网站专题关于asp sql网站开发的书籍
  • 网站建设属于什么领域小米发布会在哪里看
  • 免费空间访客领取网站提高网站互动性
  • 湖北省市政工程建设网站汉中网站建设电话
  • 宁波大型网站推广服务丁香花在线电影小说观看
  • 合肥的网站建设公司哪家好百度旗下产品
  • 墨星写作网站阿里云购买网站登录
  • 做微网站公司知名网站设计