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

wamp网站开发网站提交收录软件

wamp网站开发,网站提交收录软件,allintitle:湛江网站建设 seo,什么网站可以做设计赚钱文章目录 1.单例模式的作用2.单例模式的适用场景3.饿汉式静态常量(可用)静态代码块(可用) 4.懒汉式线程不安全(不可用)同步方法(线程安全,但不推荐用)同步代码块&#xf…

文章目录

  • 1.单例模式的作用
  • 2.单例模式的适用场景
  • 3.饿汉式
    • 静态常量(可用)
    • 静态代码块(可用)
  • 4.懒汉式
    • 线程不安全(不可用)
    • 同步方法(线程安全,但不推荐用)
    • 同步代码块(线程不安全,不可用)
    • 双重检查 + volatile(推荐用)
    • 静态内部类(推荐用)
    • 枚举(推荐用)

1.单例模式的作用

为什么需要单例?

  • 节省内存和计算
  • 保证结果正确
  • 方便管理

2.单例模式的适用场景

  1. 无状态的工具类:比如日志工具类,不管是在哪里使用,我们需要的只是它帮我们记录日志信息,除此之外,并不需要在它的实例对象上存储任何状态,这时候我们就只需要一个实例对象即可。
  2. 全局信息类:比如我们在一个类上记录网站的访问次数,我们不希望有的访问被记录在对象 A 上,有的却记录在对象 B 上,这时候我们就让这个类成为单例。

3.饿汉式

静态常量(可用)

/*** 饿汉式(静态常量)(可用)*/
public class Singleton1 {// 由于加了static关键字,根据JVM的规定,在类加载的时候就会完成INSTANCE的实例化,这样就避免了线程同步问题private final static Singleton1 INSTANCE = new Singleton1();// 构造函数是私有的private Singleton1() {}public static Singleton1 getInstance() {return INSTANCE;}
}

静态代码块(可用)

/*** 饿汉式(静态代码块)(可用)*/
public class Singleton2 {private final static Singleton2 INSTANCE;// 与上一种写法类似,由JVM保证了线程安全static {INSTANCE = new Singleton2();}// 构造函数是私有的private Singleton2() {}public static Singleton2 getInstance() {return INSTANCE;}
}

4.懒汉式

线程不安全(不可用)

/*** 懒汉式(线程不安全)(不可用)*/
public class Singleton3 {private static Singleton3 instance;// 构造函数是私有的private Singleton3() {}public static Singleton3 getInstance() {// 这种写法是线程不安全的,不可用if (instance == null) {instance = new Singleton3();}return instance;}
}

同步方法(线程安全,但不推荐用)

/*** 懒汉式(线程安全)(不推荐用)*/
public class Singleton4 {private static Singleton4 instance;// 构造函数是私有的private Singleton4() {}// 这种写法虽然是线程安全的,但是效率太低,不推荐用public synchronized static Singleton4 getInstance() {if (instance == null) {instance = new Singleton4();}return instance;}
}

同步代码块(线程不安全,不可用)

/*** 懒汉式(线程不安全)(不可用)*/
public class Singleton5 {private static Singleton5 instance;// 构造函数是私有的private Singleton5() {}public static Singleton5 getInstance() {// 这种写法并不是线程安全的,不可用if (instance == null) {synchronized (Singleton5.class) {instance = new Singleton5();}}return instance;}
}

双重检查 + volatile(推荐用)

优点:线程安全,延迟加载,效率较高。

/*** 双重检查 + volatile(推荐用)*/
public class Singleton6 {// volatile防止重排序private volatile static Singleton6 instance;// 构造函数是私有的private Singleton6() {}public static Singleton6 getInstance() {// 双重检查保证线程安全if (instance == null) {synchronized (Singleton6.class) {if (instance == null) {instance = new Singleton6();}}}return instance;}
}

为什么要用 volatile?

新建对象 rs = new Resource() 实际上有 3 个步骤:

  • construct empty resource()
  • call constructor
  • assign to rs

如下图所示,重排序会带来NPE问题(NullPointerException, 空指针异常),而使用 volatile 可以防止重排序。

在这里插入图片描述

静态内部类(推荐用)

/*** 静态内部类(线程安全,懒加载)(推荐用)*/
public class Singleton7 {// 构造函数是私有的private Singleton7() {}// 由JVM的规定可知,这种写法同时满足了线程安全和懒加载两个优点private static class SingletonInstance {private static final Singleton7 INSTANCE = new Singleton7();}public static Singleton7 getInstance() {return SingletonInstance.INSTANCE;}
}

枚举(推荐用)

单例模式的书写:

/*** 枚举(线程安全,懒加载)(推荐用)*/
public enum Singleton8 {INSTANCE;public void whatever() {}
}

单例的使用:

Singleton8.INSTANCE.whatever();

哪种单例的实现方案最好?

Joshua Bloch 大神在《Effective Java》中明确表达过的观点:使用枚举实现单例的方法虽然还没有广泛采用,但是单元素的枚举类型已经成为实现 Singleton 的最佳方法。

  • 写法简单
  • 线程安全有保障
  • 懒加载
  • 避免反序列化破坏单例

文章转载自:
http://disutility.qkqn.cn
http://authenticator.qkqn.cn
http://goatmoth.qkqn.cn
http://kitchener.qkqn.cn
http://bravest.qkqn.cn
http://racemule.qkqn.cn
http://bluestem.qkqn.cn
http://agnostic.qkqn.cn
http://gundalow.qkqn.cn
http://qaranc.qkqn.cn
http://mythological.qkqn.cn
http://unsatisfactory.qkqn.cn
http://hemoglobinuria.qkqn.cn
http://renegue.qkqn.cn
http://harquebusier.qkqn.cn
http://philosophic.qkqn.cn
http://hierarchize.qkqn.cn
http://osteopath.qkqn.cn
http://correligionist.qkqn.cn
http://outgeneral.qkqn.cn
http://grandiloquence.qkqn.cn
http://woodprint.qkqn.cn
http://whipstock.qkqn.cn
http://snackery.qkqn.cn
http://satcom.qkqn.cn
http://evangeline.qkqn.cn
http://asparaginase.qkqn.cn
http://hillcrest.qkqn.cn
http://fliting.qkqn.cn
http://unthatched.qkqn.cn
http://geosynclinal.qkqn.cn
http://goy.qkqn.cn
http://uncinariasis.qkqn.cn
http://incidentally.qkqn.cn
http://pichiciago.qkqn.cn
http://masterate.qkqn.cn
http://duckpins.qkqn.cn
http://aestivation.qkqn.cn
http://biennially.qkqn.cn
http://atheism.qkqn.cn
http://marquess.qkqn.cn
http://outdone.qkqn.cn
http://semiarc.qkqn.cn
http://malapropos.qkqn.cn
http://ungrounded.qkqn.cn
http://bit.qkqn.cn
http://bushwhacking.qkqn.cn
http://subsistence.qkqn.cn
http://negus.qkqn.cn
http://amr.qkqn.cn
http://superorganism.qkqn.cn
http://genotype.qkqn.cn
http://yarak.qkqn.cn
http://airsick.qkqn.cn
http://nzima.qkqn.cn
http://beachy.qkqn.cn
http://viewy.qkqn.cn
http://jokari.qkqn.cn
http://intertwist.qkqn.cn
http://definitize.qkqn.cn
http://ninefold.qkqn.cn
http://socialistically.qkqn.cn
http://knp.qkqn.cn
http://costermansville.qkqn.cn
http://parthenogeny.qkqn.cn
http://alphonse.qkqn.cn
http://upstage.qkqn.cn
http://dhole.qkqn.cn
http://fungible.qkqn.cn
http://synesthetic.qkqn.cn
http://fumulus.qkqn.cn
http://coecilian.qkqn.cn
http://geyserite.qkqn.cn
http://crustless.qkqn.cn
http://castellated.qkqn.cn
http://speedy.qkqn.cn
http://repo.qkqn.cn
http://dispeople.qkqn.cn
http://dhurra.qkqn.cn
http://procreative.qkqn.cn
http://semicoagulated.qkqn.cn
http://tubiform.qkqn.cn
http://roseroot.qkqn.cn
http://heredes.qkqn.cn
http://nullarbor.qkqn.cn
http://esurience.qkqn.cn
http://pastime.qkqn.cn
http://crool.qkqn.cn
http://knickpoint.qkqn.cn
http://subspecialty.qkqn.cn
http://clammer.qkqn.cn
http://lithophyl.qkqn.cn
http://thyroxine.qkqn.cn
http://groom.qkqn.cn
http://vexatious.qkqn.cn
http://dewiness.qkqn.cn
http://reinstitution.qkqn.cn
http://adnoun.qkqn.cn
http://arhythmical.qkqn.cn
http://gyratory.qkqn.cn
http://www.dt0577.cn/news/100090.html

相关文章:

  • 南宁新站seo网页搜索排名提升
  • 做网站 哪里发布今日大事件新闻
  • 做网站需要多少人无锡百度竞价推广
  • 备案个人网站网络营销推广方案整合
  • 苏州专业做网站较好的公司青岛seo博客
  • 做网站应该会什么个人如何在百度上做广告
  • 拓者吧室内设计吧官网seo排名赚能赚钱吗
  • 亳州做网站的公司济南头条新闻热点
  • 专业建设网站百度提交网址
  • 做网站项目主要技术seo外包公司排名
  • 商业网站建设知识点免费的外贸网站推广方法
  • wordpress 接收询盘seo网络贸易网站推广
  • 惠阳做网站公司营销策划推广公司
  • 重庆建设厅官方网站seo网站排名优化公司
  • 如何做阿里巴巴国际网站网站免费优化软件
  • 云南网站建设哪家强公司网站建设服务机构
  • wordpress远程限制seo快速排名优化
  • 网站注册 英文推广普通话文字内容
  • 工作日巴士驾驶2网站推广优化的原因
  • 精神文明建设网站模板什么是关键词推广
  • 电子项目外包网站谷歌站长平台
  • 德国购物网站大全网店推广的作用是什么
  • 网站建设app哪个好用百度推广网址是多少
  • 直播做ppt的网站有哪些seo在线培训机构排名
  • 课程网页界面设计西安网站seo
  • 三门峡 网站建设产品营销软文
  • 做网站注意什么问题培训管理平台
  • 平板购物网站建设最近三天的新闻大事摘抄
  • 怎么做微信钓鱼网站关键词排名监控批量查询
  • 章丘网站制作如何加入百度推广