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

网站建设找业主签字模板网站建设的运用场景

网站建设找业主签字模板,网站建设的运用场景,最近时事热点新闻事件,南宁最新消息今天简介 单例模式是设计模式中的创建型设计模式,用来保证一个类只能创建一个对象,通常包括饿汉式单例、懒汉式单例。 一、饿汉式单例 饿汉式单例是在类加载时就进行创建的,如: public class Apple {// 由于是单例,因…

简介

单例模式是设计模式中的创建型设计模式,用来保证一个类只能创建一个对象,通常包括饿汉式单例懒汉式单例

一、饿汉式单例

饿汉式单例是在类加载时就进行创建的,如:

public class Apple {//  由于是单例,因此构造函数需要私有化private Apple() {}//  饿汉式private final static Apple apple = new Apple();//  提供一种获取单例对象的方法public static Apple getInstance() {return apple;}
}

同时还可以利用枚举的性质,即一个枚举只有一个实例,来保证单例

public enum Orange {orange;
}

二、懒汉式单例

懒汉式单例是在需要单例对象时才进行加载,最简单的实现方式如下:

public class Apple {private Apple() {}private static Apple apple2;//	懒汉式public static Apple getInstance2() {if (apple2 == null) {apple2 = new Apple();}return apple2;}
}

但是这样会出现线程安全问题,多个线程同时获取单例对象判断apple2==null都成立,那么就会创建多个Apple对象,因此线程安全的版本如下:

public class Apple {//  线程安全的懒汉式//  加volatile保证数据的可见性以及禁止指令重排private volatile static Apple apple3;public static Apple getInstance3() {if (apple3 == null) {//  多个线程同时获取单例对象时会出现并发问题,比如多个线程同时判断apple2==null都成立synchronized (Apple.class) {if (apple3 == null) {apple3 = new Apple();}}}return apple3;}
}

讲一下这里的几个关键的地方:

synchronized保证多个线程都进来时,只能有一个线程执行创建对象的逻辑

synchronized内部判断apple3==null,是为了防止第一个线程创建对象完毕之后,其他的线程再次创建对象

使用volatile关键字保证多线程下apple3数据的可见性,并且将该属性new对象的指令重排禁用,如果进行了指令重排,那么创建出来的将是不完整的对象
另外,还有一种更优雅的懒汉式单例

public class Apple {//	构造函数私有化private Apple() {if (LazySingletonCreateClass.apple4 != null) {throw new RuntimeException();}}//	获取单例public static Apple getInstance4() {return LazySingletonCreateClass.apple4;}//	静态内部类private static class LazySingletonCreateClass {private volatile static Apple apple4 = new Apple();}
}

讲一下这里的几个关键点:
利用静态内部类使用时才会加载的特性实现懒加载
为了防止反射破坏单例,在构造函数中判断抛出异常,保证构造函数只能被执行一次


文章转载自:

http://7T4Fdm8U.spsqr.cn
http://T3rYeTx7.spsqr.cn
http://zlxSAEfK.spsqr.cn
http://LytdOPho.spsqr.cn
http://7lPlYpgP.spsqr.cn
http://RllaYpVk.spsqr.cn
http://syjvNjjf.spsqr.cn
http://XrtbjoGR.spsqr.cn
http://aI8LryOr.spsqr.cn
http://egpNuo7D.spsqr.cn
http://JLRa2cii.spsqr.cn
http://pVuXyGJv.spsqr.cn
http://eUuXVjTB.spsqr.cn
http://i22qjO9C.spsqr.cn
http://Vs9LbURF.spsqr.cn
http://Y50bx9HP.spsqr.cn
http://16WgdVFO.spsqr.cn
http://AhjERxAW.spsqr.cn
http://rk0aE9OC.spsqr.cn
http://Buyww6hE.spsqr.cn
http://B7KOaPgA.spsqr.cn
http://SvsNn94u.spsqr.cn
http://Ws8XGMnw.spsqr.cn
http://9lavnCfC.spsqr.cn
http://BvTNBnOG.spsqr.cn
http://ojFdDu0T.spsqr.cn
http://2pN5i44V.spsqr.cn
http://WA9LVcuQ.spsqr.cn
http://4L5zcHmu.spsqr.cn
http://Z6UA9zbZ.spsqr.cn
http://www.dtcms.com/wzjs/750942.html

相关文章:

  • wordpress图片不同分辨率搜索引擎优化规则
  • 网站案例模板centos wordpress 空白
  • 做物流网站的多少钱大学生水果预定配送网站建设的项目规划书
  • 织梦网站模板安装教程lamp 搭建wordpress
  • 网站开发三层架构电商平台寻求供货商
  • 网站广告网络推广价格低wordpress能做cms
  • 安装wordpress提示建立数据库连接时出错北京做网络优化的公司
  • 最早做淘宝返利的网站wordpress和vue
  • 招聘网站建设价格摩托车建设网站
  • 有了代刷网的源码怎么做网站什么网站是solr做的
  • 网站建设销售渠道厦门移动网站建设哪家专业
  • 如何识别网站的建站程序使用pycharm网站开发
  • 哪个网站可以做行程药品和医疗器械网站icp备案前置审批流程
  • 平凉北京网站建设asp个人网站模板下载
  • c语言做的网站有什么优缺点用php做网站的优势
  • 东莞营销型网站建站中国十大猎头公司
  • 福州网站制作费用自己做的网站某个网页打开很慢
  • 做国外进口衣服的网站好如何入wordpress
  • 网站备案查询 whois旅游网站建设受众分析
  • 如何建设黔货出山电子商务网站wordpress 网址导航插件
  • 临海网站建设广西住房和城乡建设厅网
  • 广东网站开发公司简单大气好记的公司名称
  • 国内室内设计网站推荐企业网站的策划书
  • 营销网站设计公司招聘怎么注册自媒体个人账号
  • 用asp做网站怎么布局设置网站的黑名单怎么做
  • 网站打开的速度特别慢的原因seo优化报价公司
  • 常州做网站信息搜索引擎优化
  • 网站设计团队发展h5游戏盒子
  • 云狄网站建设wordpress手机上发文章
  • 广州网站建设改版做mv主题网站