单例2021-04-27

Java的单例实现方式

经典:懒汉式、饿汉式、双重检测锁

关键:

私有化构造方法

通过方法去获取单例对象

懒汉(调用时再去初始化)、饿汉(直接初始化)

Demo:

//饿汉式

public class Demo1 {

  private static Demo1 demo1 = new Demo1();

  private Demo1() {

    sout("初始化");

  }

  public static Demo1 getInstance() {

    return demo1;

  }

}

//懒汉式

public class Demo2 {

  private static Demo2 demo2;

  private Demo2() {

    sout("init");

  }

  public static Demo2 getInstance() {

    if(demo2 == null) {

      demo2 = new Demo2();

    }

    return demo2;

  }

}

//双重检测锁

public class Demo3 {

  private static Demo3 demo3;

  private Demo3() {

    sout("init");

  }

  public static Demo3 getInstance() {

    if(demo3 == null) {

      synchronized(Demo3.class) {

        if(demo3 == null) {

          demo3 = new Demo3();

        }

      }

    }

    return demo3;

  }

}


单例模式的作用

保证一个类只有一个实例,并且提供一个访问该全局访问点。

因此可以节约系统资源,当需要频繁创建和销毁的对象时单例模式无疑可以提高系统的性能。

避免对共享资源的多重占用。

————————————————

版权声明:本文为CSDN博主「郭诺」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_39244308/article/details/114595947

你可能感兴趣的:(单例2021-04-27)