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

wordpress 内容 管理员查看曲靖seo

wordpress 内容 管理员查看,曲靖seo,网站是怎么制作的,西安十大网络公司1.立即加载/"饿汉模式"什么是立即加载?立即加载就是使用类的时候已经将对象创建完毕,常见的实现办法就是直接new实例化.而立即加载从中文的语境来看,有"着急"/"急迫"的含义,所以也称为"饿汉模式"./** 立即加载方式饿汉模式*/public c…
1.立即加载/"饿汉模式"
什么是立即加载?立即加载就是使用类的时候已经将对象创建完毕,常见的实现办法就是直接new实例化.而立即加载从中文的语境来看,有"着急"/"急迫"的含义,所以也称为"饿汉模式".
/*
* 立即加载方式===饿汉模式
*/
public class SingleObject {private static SingleObject single = new SingleObject();private SingleObject() { }public static SingleObject getInstance() {return single;}public static void main(String[] args) {new Thread(() -> {System.out.println(SingleObject.getInstance().hashCode());}).start();new Thread(() -> {System.out.println(SingleObject.getInstance().hashCode());}).start();new Thread(() -> {System.out.println(SingleObject.getInstance().hashCode());}).start();}
} 

hashCode是同一值,说明对象是同一个,也就是实现了立即加载型单例模式.
2.延迟加载/"懒汉模式"----在多线程下很容易出现问题
什么是延迟加载?延迟加载就是在调用get()方法时实例才被创建,常见的实现办法就是在get()方法中进行new实例化.而延迟加载从中文的语境来看,是"缓慢"/"不急迫"的含义,所以也称为"懒汉模式".
解决不同步的办法
/*
* 延迟加载----懒汉模式
* 在多线程下的解决办法,使用DCL双检查锁机制
* 效率比较高
*/
public class SingleObject1 {private static SingleObject1 single;private SingleObject1() {}public static SingleObject1 getInstance() {if (single == null) {synchronized (SingleObject1.class) {if (single == null) {single = new SingleObject1();}}}return single;}public static void main(String[] args) {new Thread(() -> System.out.println(SingleObject1.getInstance().hashCode())).start();new Thread(() -> System.out.println(SingleObject1.getInstance().hashCode())).start();new Thread(() -> System.out.println(SingleObject1.getInstance().hashCode())).start();}
}

使用双重检查锁功能,成功地解决了"懒汉模式"遇到多线程的问题.DCL也还是大多数多线程结合单例模式使用的解决办法.

 

3.使用静态内部类实现单例模式

/*
* 通过静态内部类实现单例模式
*/
public class SingleObject2 {private static class SingleHandler {private static SingleObject2 single = new SingleObject2();}private SingleObject2() { }public static SingleObject2 getInstance() {return SingleObject2.SingleHandler.single;}public static void main(String[] args) {new Thread(() -> System.out.println(SingleObject2.getInstance().hashCode())).start();new Thread(() -> System.out.println(SingleObject2.getInstance().hashCode())).start();new Thread(() -> System.out.println(SingleObject2.getInstance().hashCode())).start();new Thread(() -> System.out.println(SingleObject2.getInstance().hashCode())).start();}
}
4.序列化与反序列化实现单例模式
静态内部类可以达到线程安全问题,但如果遇到序列化对象时,使用默认的方式运行得到的结果还是多例的.
解决办法就是反序列化中使用readResolve()方法.

5.使用static代码块实现单例模式
静态代码块中的代码在使用类的时候就已经执行了,所以可以应用静态代码块的这个特性来实现单例设计模式.
/*
* 使用静态代码块实现单例模式
*/
public class SingleObject3 {private static SingleObject3 single;public SingleObject3() { }static {single = new SingleObject3();}public static SingleObject3 getInstance() {return single;}public static void main(String[] args) {new Thread(() -> { for(int i = 0 ; i < 5; i++) {System.out.println(SingleObject3.getInstance().hashCode());}}).start();new Thread(() -> { for(int i = 0 ; i < 5; i++) {System.out.println(SingleObject3.getInstance().hashCode());}}).start();}
}
6.使用enum枚举数据类型实现单例模式
枚举enum和静态代码块的特性相似,在使用枚举类是,构造方法会被自动调用,也可以应用其这个特性实现单例模式.
上面将枚举类暴露出来了,下面进行完善.

转载于:https://www.cnblogs.com/maybechen/p/8694842.html

http://www.lbrq.cn/news/2498635.html

相关文章:

  • 怎么快速建动态网站自己的网站怎么做seo
  • 网站被入侵后需做的检测 1代写文案平台
  • 网站下拉广告网络广告策划与制作
  • 企业邮箱免费版注册windows优化大师是官方的吗
  • 网站建设作品图片网站生成
  • 白熊阅读做网站架构我想在百度发布信息
  • 中文免费网站模板吉林关键词排名优化软件
  • APP开发网站建设哪家好seo外包公司需要什么
  • 网站的手机客户端怎样做黑龙江最新疫情
  • 外贸网站建设 杭州以图搜图
  • 邵阳网站建设推广淘宝关键词排名怎么查询
  • java做网站需要的技术最近的重大新闻
  • 上海网站营销百度竞价排名怎么做
  • 哪个兄弟给个地址呀企业seo网站推广
  • 禄劝彝族苗族网站建设百家号自媒体平台注册
  • wordpress导航条左右seo数据分析
  • 昆明高端网站建设腾讯企业qq官网
  • 哈尔滨网站提升排名seo技术交流论坛
  • 做网站之类的毕业论文海外广告优化师
  • 如何做展示型网站百度公司
  • 自建网站营销今日十大头条新闻
  • 房地产网站广告销售怎么做怎样弄一个自己的平台
  • 做模板网站怎么放视频深圳网络优化seo
  • 网站换dns网络营销策划方案怎么做
  • 郑州移动网站建设交易平台官网
  • 关于做情侣的网站的图片电脑培训班速成班
  • 郑州做网站排名公司哪家好网站推广的方式有哪些?
  • 类似源码之家的网站长沙seo行者seo09
  • 旧域名新网站品牌策划方案范文
  • 网站建站视频教程国际新闻稿件
  • 四、计算机组成原理——第4章:指令系统
  • django ManyToManyField 如何添加数据
  • 【QT搭建opencv环境】
  • 数据赋能(345)——数据整合——全面集成原则
  • 深入探索Linux:忙碌的车间“进程”间通信
  • Vue 四个map的使用方法