zoukankan      html  css  js  c++  java
  • 单例模式

    单例模式(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(){
      }、
      }

  • 相关阅读:
    css 深入理解
    2018 web经典面试题
    CSS 居中布局
    HTTP首部解析
    http状态码有那些?分别代表是什么意思?
    基本HTTP协议流程是什么?
    JS-变量
    javascript基础1
    css3弹性盒模型(Flexbox)
    文字效果和颜色
  • 原文地址:https://www.cnblogs.com/linanana/p/12107361.html
Copyright © 2011-2022 走看看