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

深圳创业补贴政策2022申请条件网站排名优化制作

深圳创业补贴政策2022申请条件,网站排名优化制作,网站单页面制作,网站页面建设单例模式是设计模式的一种,先谈谈什么是设计模式? 大家应该都知道棋谱、剑谱之类的,就是一些“高手”在经历过长期的累计之后,更具经验写出的具有固定套路的处理“方法”,只要按照这个套路来,在对局之中必然…

单例模式是设计模式的一种,先谈谈什么是设计模式?

大家应该都知道棋谱、剑谱之类的,就是一些“高手”在经历过长期的累计之后,更具经验写出的具有固定套路的处理“方法”,只要按照这个套路来,在对局之中必然是不会吃亏的,甚至能够一招制敌。

那么在我们日常的开发中也有大佬们针对一些十分常见的场景,抽象出固定的套路。一些小白在学习了大佬总结的设计模式之后,就像是掌握了套路,针对适用的场景就不会吃亏。

单例模式的使用场景是什么呢?单例模式能够保证某个类的在程序中只存在唯一的一份,就算是new多个实例,实际上也是同一份。

这一点在很多场景上都需要. 比如 JDBC 中的 DataSource 实例就只需要一个.

单例模式的具体实现方式可以分为 饿汉模式 和 懒汉模式:

饿汉模式:

类加载的同时创建实例。

class Singleton{//static 修饰 是类属性 直接在类加载的时候将实例创建出来,饿汉模式private static Singleton instance = new Singleton();//为了避免Singleton类不小心被复制出多份//将构造方法设置为private。这样在类外面就没有办法通过new的方式来创建 Singleton这个实例了private Singleton() {}public static Singleton getInstance(){return instance;}
}

懒汉模式-单线程版本

类加载的时候不创建实例. 第一次使用的时候才创建实例.

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

懒汉模式-多线程版本

为什么这里的懒汉模式需要考虑多线程版本呢?因为上面的单线程的代码存在线程安全的问题。不安全是因为在getInstance当中有对instance的写操作,涉及到写操作的时候就要小心了。如果在第一次创建实例的时候有多个线程同时调用了getInstance方法就会导致创建出多个不同的实例了,与我们的单例模式初衷所悖。因此需要对这里的写操作加锁:

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

懒汉模式-多线程改进版本

上面的代码还存在着两个不足

  1. 加锁是一个开销比较高的操作,我们也看到了之所以线程不安全是因为在第一次创建实例的时候有可能有多个线程同时施行,导致了创建出多个不同的实例。那么我们只需要针对首次创建实例的时候加锁,后续的操作就没有必要加锁了。这样可以提升很大的效率。
  2. 同时为了避免“内存可见性”导致读取的instance存在偏差,于是补充上volatile
class SingletonThread {private static volatile SingletonThread instance = null;private SingletonThread() {}public static SingletonThread getInstance() {if (instance == null) {synchronized (SingletonThread.class) {if (instance == null) {instance = new SingletonThread();}}}return instance;}
}

注意理解两个if判定。

虽然两个if的判定条件是一样的但是两者的含义却大大不同。第一个if判定是判定instance是否是第一次创建,如果没有创建的话就开始创建实例并且加锁。第二个if判定抢夺到锁后,instance是否已经被创建了。两个if语句不可以省略任意一个。

http://www.wooajung.com/news/23701.html

相关文章:

  • 网页设计实训报告总结100字北京seo优化推广
  • 利用切片做网站背景图片域名访问网站怎么进入
  • 闸北专业做网站网络推广外包公司干什么的
  • 郑州网站建设最低价网络营销运营方案
  • 预约做家庭清洁的网站西安网站建设制作公司
  • 怎么制作网站教程图片石家庄seo按天扣费
  • 织梦网站优化教程开个网站平台要多少钱
  • wordpress主题官网seo关键词大搜
  • 搜索引擎优化教程seo词条
  • 东莞机械建站如何培训机构网站
  • 做调查赚钱的网站有哪些南宁优化网站收费
  • 中国企业500强搜索版宜昌网站seo收费
  • 哪里做网站排名职业培训机构
  • 网站 多线域名注册好了怎么弄网站
  • 寻找郑州网站建设网站制作维护
  • 网站建设内存网络推广营销策划方案
  • 网站产品动效怎么做最新最好的磁力搜索
  • 做新闻网站怎么赚钱北京网站排名seo
  • 做像淘宝这样的购物网站要多少钱佛山本地网站建设
  • 网站建设规划快速将网站seo
  • 给别人做网站怎么收取费用域名被墙查询
  • 游戏服务器租用多少钱一年郑州seo公司排名
  • 百度给做网站公司网站如何优化关键词排名
  • 千助网站公司免费招收手游代理
  • 互联网站建设维护是做什么的廊坊自动seo
  • 做网站前期了解客户什么需求沈阳网站seo排名公司
  • 可以做产品宣传的网站seo服务价格表
  • 网站和app可以做充值余额功能如何做百度关键词推广
  • 如何做织梦论坛类的网站长春网络推广公司哪个好
  • h5电子商务网站站长工具seo综合查询收费吗