7.02_单例模式(懒汉模式,恶汉模式)

Posted zyyzy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了7.02_单例模式(懒汉模式,恶汉模式)相关的知识,希望对你有一定的参考价值。

一、什么是单例模式

  * 单例设计模式:保证类在内存中只有一个对象。

    * 如何保证类在内存中只有一个对象呢?
    * (1)控制类的创建,不让其他类来创建本类的对象。private
    * (2)在本类中定义一个本类的对象。Singleton s;
    * (3)提供公共的访问方式。 public static Singleton getInstance(){return s}
二、 单例写法两种:
     (1)饿汉式 开发用这种方式。

        //饿汉式
        class Singleton {
        //1,私有构造函数
          private Singleton(){}
        //2,创建本类对象
        private static Singleton s = new Singleton();
        //3,对外提供公共的访问方法
      public static Singleton getInstance() {
        return s;
        }

      public static void print() {
        System.out.println("11111111111");
        }
      }
      (2)懒汉式 面试写这种方式。多线程的问题?

      //懒汉式,单例的延迟加载模式
      class Singleton {
       //1,私有构造函数
      private Singleton(){}
      //2,声明一个本类的引用
      private static Singleton s;
      //3,对外提供公共的访问方法
      public static Singleton getInstance() {
        if(s == null)
      //线程1,线程2
        s = new Singleton();
        return s;
      }

      public static void print() {
        System.out.println("11111111111");
      }
  }
   (3)第三种格式
    class Singleton {
      private Singleton() {}

       public static final Singleton s = new Singleton();//final是最终的意思,被final修饰的变量不可以被更改

      }

以上是关于7.02_单例模式(懒汉模式,恶汉模式)的主要内容,如果未能解决你的问题,请参考以下文章

单例模式中懒汉式和恶汉式

单例设计模式懒汉式和恶汉式

Java实现单例模式之恶汉式懒汉式枚举式,带测试

JAVA设计模式之懒汉式与恶汉式的单例模式实现的方法与详解

单例模式Singleton

详解懒汉模式和饿汉模式以及他们的改进