• 单例模式


    单例模式(5种)

    单例模式 : 一个只有单一对象的类

    1. 饿汉式 空间性能低
      class A{
      private static final A instance = new A();
      public static A newInstance() {
      return instance;
      }
      private A(){}
      }

    2. 懒汉式 时间性能低
      class B{
      private static B instance = null;
      public static synchronized B newInstance() {
      if (instance == null) instance = new B();
      return instance;
      }
      private B() {}
      }

    3. 融合饿汉式和懒汉式的优点
      class C{
      private static class Holder{
      static final C instance = new C();
      }
      public static C newInstance() {
      return Holder.instance;
      }
      private C() {}
      }

    4. 双重检查锁
      public class Singleton {
      private volatile static Singleton singleton;
      public Singleton() {
      }
      public static Singleton getInstance() {
      if (singleton == null) {
      synchronized (Singleton.class) {
      if (singleton == null) {
      singleton = new Singleton();
      }
      }
      }
      return singleton;
      }
      }

    5. 枚举式
      线程安全,调用效率高,但是不能延时加载,但是可以天然的防止反射和反序列化漏洞**
      public enum SingletonDemo4 {
      //这个枚举对象本身就是单例对象
      INSTANCE;
      //添加自己需要的操作
      public void operation(){
      }、
      }

  • 相关阅读:
    最好的在线打字练习网站
    input 的 type 等于 file
    windows 删除文件或文件夹
    nvm 管理 node 版本
    github 的 fork 取消功能
    window cmd 命令行下创建文件夹和文件
    17_10_11 Redis 指令
    17_10_11 Mac 上的brew 安装指令
    17_10_11 运算符&,&&,>> 和 >>>
    17_10_10 乱码问题总结
  • 原文地址:https://www.cnblogs.com/linanana/p/12107361.html
Copyright © 2020-2023  润新知