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

珠市口网站建设网站推广网络

珠市口网站建设,网站推广网络,j建设银行信用卡网站,免费psd素材网1、什么是单例模式? Java单例模式是一种设计模式,用于确保一个类只有一个实例,并提供全局访问点以获取该实例。它通常用于需要共享资源或控制某些共享状态的情况下。 例如: 一个日志记录器(Logger)。在一个…

1、什么是单例模式?

        Java单例模式是一种设计模式,用于确保一个类只有一个实例,并提供全局访问点以获取该实例。它通常用于需要共享资源或控制某些共享状态的情况下。

例如:

        一个日志记录器(Logger)。在一个应用程序中,可能有多个组件需要记录日志,但是我们希望只有一个日志记录器实例来避免重复创建和管理多个日志文件。使用单例模式,我们可以确保只有一个日志记录器实例存在,并且所有组件都可以共享该实例来记录日志。这样可以简化日志记录的管理,并确保日志信息的一致性。

2、实现方式

  • 懒汉式:再不会再类加载的时候就创建对象,要再调用方法时才创建对象,减少内存开销。
  • 饿汉式:再类加载的时候就实例化对象。

2.1同步方法调用创建实例(懒汉式)

当刚加载这个类时不会直接初始化person,只有调用getPerson()方法时才会构建唯一实例。这种方式能很好的保证多线程安全,但效率很低,因为大多数调用这个方法的时候是不需要同步的。

public class Person {private static Person person;//将构造器私有化,就无法从外部调用构造器构造对象private Person(){}//此时这个synchronized是保证线程安全public synchronized static Person getPerson() {if (person == null) {person = new Person();}return person;}
}

 2.2双重校验锁方式加载对象实例(懒汉式)

这里我们用了两个判断,再第一个判断不通过时我们就没有用到同步代码块,这样相较于上一个实现方式提高效率。

public class Person {//此时要用volatile用于保证person = new Person()内部指令不排序private volatile static Person person;//将构造器私有化,就无法从外部调用构造器构造对象private Person(){}public  static Person getPerson() {if (person ==null){synchronized (Person.class){if (person == null){person = new Person();}}}return person;}
}

2.3静态变量加载对象实例(饿汉式)

对象唯一实例会随着这个类的加载就会被初始化出来,基于 classloader 机制避免了多线程的同步问题,但它再还没有使用这个对象时就被加载出来,有点浪费内存空间。

public class Person {private static Person person = new Person();//将构造器私有化,就无法从外部调用构造器构造对象private Person(){}public  static Person getPerson() {return person;}
}

2.4静态内部类实现单例模式(懒汉式)

这里用到了一个知识点,就是内部类不会随着外部类的加载而加载,而是再第一次使用到内部类后再加载初始化内部类。这样的机制实现了懒汉模式。我们使用了final修饰,也将其确定为单例模式。

public class Person {private static class PersonHolder {private static final Person INSTANCE = new Person();}
//将构造器私有化,就无法从外部调用构造器构造对象private Person (){}public static final Person getInstance() {return PersonHolder.INSTANCE;}
}

2.5 枚举实现单例模式(饿汉式)

        这是实现单例模式的最佳方法。它更简洁,自动支持序列化机制,绝对防止多次实例化。这是实现单例模式的最佳方法。它更简洁,自动支持序列化机制,绝对防止多次实例化。

public enum Singleton {  INSTANCE;  public void whateverMethod() {  }  
}
http://www.yayakq.cn/news/404890/

相关文章:

  • 电子商务网站设计与实现论文投资公司起名
  • 江西岳顶建设工程有限公司网站四大网站是哪四大
  • 网站备案后打不开广州建设交易中心
  • 如何查一个网站的备案品牌营销专家
  • 扬州市城乡建设局网站首页重庆企业网站开发服务器
  • 有些网站突然无法访问浏览器怎么取消2345网址导航
  • 如何找回网站后台密码女生学电子商务就业前景
  • 中财盛建设集团公司网站什么是网站的栏目和板块
  • 一元云购网站建设模块开发软件能赚多少钱
  • 网站建设优化工资高不网站在什么地方设关键词
  • 论职能网站建设wordpress保存远程图片大小
  • 北京做网站公司 seo建一个自己的网站价格
  • 网站改版建设主要wordpress玉娇龙儿
  • 网站建设基础心得美橙互联网站备案平台
  • 做vi设计的网站北仑建设局网站
  • 网站建设销售主管岗位职责做网站的主机配置
  • php学多久可以做网站wordpress年会员
  • 微信优惠券网站怎么做的谷歌seo优化排名
  • 蒙牛网站建设报价情况摄影瀑布流网站模板
  • 石家庄建站网页模板腾讯企业邮箱手机登录入口官网
  • 网站名称去哪里注册瓜子二手车直卖网
  • 织梦网站建设交流群珠海互联网平台
  • 网站建设优化方法上海建筑建材业网官网
  • 如何自建网站入口石家庄建站工具
  • 做ppt网站有哪些内容吗wordpress接入qq互联
  • 网站建设与制作课后题答案长春火车站在哪
  • 怎么填充网站内容wordpress怎么显示摘要
  • 为把网站建设更好手机制作表格的软件免费
  • 如何建设网站服务器福州建企业网
  • 嘉兴网站搜索优化seo优化思路