1,单例的概述:(instance)

在程序运行过程中一个类只创建一个对象;

2,单例的分类:

  1. 饿汉式:使用私有对象之前,对象已经创建好了;
  2. 懒汉式:当需要使用到对象的时候才去创建;(线程不安全,要加锁)

    3,饿汉式单例的创建步骤:

  3. 将构造器私有:

    1. private D(){};
  4. 使用成员变量保存创建好的单例对象:

    1. private static final D instance=new D();
  5. 提供一个静态的方法返回单例对象提供给别人使用类名进行调用:

    1. public static D getInstance(){
    2. return instance;
    3. }
  6. 单例的调用:

    1. //注意:单例不能被创建对象,因为构造器被私有了;
    2. //因为是静态方法,所以直接使用类名进行调用:
    3. D instance1 = D.getInstance();

4,懒汉式单例的创建步骤:

  1. 将构造器私有:

    1. private D(){};
  2. 使用成员变量保存单例对象:

    1. //无final,否则无法创建单例对象
    2. private static D instance;
  3. 提供一个静态方法并返回单例对象:

    1. public static D getInstance() {
    2. if (instance == null) {
    3. instance = new D();
    4. }
    5. return instance;
    6. }
  4. 单例对象的调用:

    1. //注意:单例不能被创建对象,因为构造器被私有了;
    2. //因为是静态方法,所以直接使用类名进行调用:
    3. D instance1 = D.getInstance();