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

网站中怎么做视频直播做网站时管理员权限的页面

网站中怎么做视频直播,做网站时管理员权限的页面,小型门户网站建设硬件配置,北京搬家公司排名前十名电话目录 一、五种单例模式的实现方式 1.饿汉模式 2.饿汉枚举类型 3.懒汉式 4.双检锁懒汉式 5.内部类懒汉式 二、JDK 中单例的体现 一、五种单例模式的实现方式 1.饿汉模式 public class Singleton1 implements Serializable {private Singleton1() {if (INSTANCE ! null) {thro…

目录

一、五种单例模式的实现方式

        1.饿汉模式

        2.饿汉枚举类型

        3.懒汉式

        4.双检锁懒汉式

        5.内部类懒汉式

二、JDK 中单例的体现


一、五种单例模式的实现方式

        1.饿汉模式

public class Singleton1 implements Serializable {private Singleton1() {if (INSTANCE != null) {throw new RuntimeException("单例对象不能重复创建");}System.out.println("private Singleton1()");}private static final Singleton1 INSTANCE = new Singleton1();public static Singleton1 getInstance() {return INSTANCE;}public static void otherMethod() {System.out.println("otherMethod()");}public Object readResolve() {return INSTANCE;}
}
  • 构造方法抛出异常是防止反射破坏单例

  • readResolve() 是防止反序列化破坏单例

        2.饿汉枚举类型

public enum Singleton2 {INSTANCE;private Singleton2() {System.out.println("private Singleton2()");}@Overridepublic String toString() {return getClass().getName() + "@" + Integer.toHexString(hashCode());}public static Singleton2 getInstance() {return INSTANCE;}public static void otherMethod() {System.out.println("otherMethod()");}
}
  • 枚举饿汉式能天然防止反射、反序列化破坏单例

        3.懒汉式

public class Singleton3 implements Serializable {private Singleton3() {System.out.println("private Singleton3()");}private static Singleton3 INSTANCE = null;// Singleton3.classpublic static synchronized Singleton3 getInstance() {if (INSTANCE == null) {INSTANCE = new Singleton3();}return INSTANCE;}public static void otherMethod() {System.out.println("otherMethod()");}}
  • 其实只有首次创建单例对象时才需要同步,但该代码实际上每次调用都会同步

  • 因此有了下面的双检锁改进

        4.双检锁懒汉式

public class Singleton4 implements Serializable {private Singleton4() {System.out.println("private Singleton4()");}private static volatile Singleton4 INSTANCE = null; // 可见性,有序性public static Singleton4 getInstance() {if (INSTANCE == null) {synchronized (Singleton4.class) {if (INSTANCE == null) {INSTANCE = new Singleton4();}}}return INSTANCE;}public static void otherMethod() {System.out.println("otherMethod()");}
}

为何必须加 volatile:

  • INSTANCE = new Singleton4() 不是原子的,分成 3 步:创建对象、调用构造、给静态变量赋值,其中后两步可能被指令重排序优化,变成先赋值、再调用构造

  • 如果线程1 先执行了赋值,线程2 执行到第一个 INSTANCE == null 时发现 INSTANCE 已经不为 null,此时就会返回一个未完全构造的对象

        5.内部类懒汉式

public class Singleton5 implements Serializable {private Singleton5() {System.out.println("private Singleton5()");}private static class Holder {static Singleton5 INSTANCE = new Singleton5();}public static Singleton5 getInstance() {return Holder.INSTANCE;}public static void otherMethod() {System.out.println("otherMethod()");}
}
  • 避免了双检锁的缺点

二、JDK 中单例的体现

  • Runtime 体现了饿汉式单例

  • Console 体现了双检锁懒汉式单例

  • Collections 中的 EmptyNavigableSet 内部类懒汉式单例

  • ReverseComparator.REVERSE_ORDER 内部类懒汉式单例

  • Comparators.NaturalOrderComparator.INSTANCE 枚举饿汉式单例

http://www.yayakq.cn/news/688080/

相关文章:

  • wordpress美文主题优化分析
  • 做一份网站的步zou如何在局域网做网站
  • 长沙网站建设流程淘宝客如何做淘宝客网站推广
  • 网站设计服务流程一流的南昌网站建设
  • 百胜网站建设网站建设架构 服务器
  • 合肥大型网站设计湛江企业网站seo
  • 做相同网站违法吗wordpress标题怎么
  • 网站与网页俄罗斯搜索引擎推广
  • 万网建站教程朔州网站设计公司
  • 网站平台推广语录最新永久ae86tv最新
  • 手机上怎么做网站创业竞价系统
  • wordpress登入后台没反应郑州网站优化汉狮网络
  • 怎样可以查看网站是由哪个公司做的劳务网站怎样做
  • 番禺建网站公司网站建设公司网站
  • 长沙微信网站制作wordpress 4.8.4
  • 中国建设造价信息网站wordpress 权限设置方法
  • 学生制作设计个人网站成都网站建设sntuu
  • 开发网站做什么叫人做国外公司网站让老外做好还是国内人做好
  • 网站建设模板哪家好化妆品网站建设版块
  • 南宁市营商环境建设局网站用dw制作视频网站
  • 30天网站建设实录素材一比一高仿手表网站
  • 网站建设与维护案例用tornado做网站
  • 免费网站收录提交有做网站的吗 优帮云
  • 车陂手机网站建设报价易语言怎么制作网站
  • 莱芜市网站建设海口网站建设优化公司
  • 深圳做网站的公司搜行者seo网站后台登入模板
  • 网站建设合同模版模板设计原则
  • 创建企业手机微信网站门户建设和管理环保网站
  • 网站建设单位有哪些方面网站图怎么做会高清
  • 建外做网站的公司网站视频外链怎么做