懒汉式单例和饿汉式单例

懒汉式单例

//懒汉式单例  ,在第一次调用的时候实例化自己 饿汉式灰猫线程不安全风险

//懒汉式单例的实现没有考虑线程安全问题,它是线程不安全的,并发环境下很可能出现多个Singleton实例。

public class Singleton{

  private Singleton(){}

  private static Singleton singleton = null;

  //静态工厂方法

  public static Singleton getInstance(){

    if(singleton  != null ){

        singleton  = new Singleton ();

    }

  }

}

//饿汉式单例类.在类初始化时,已经自行实例化

//饿汉式在类创建的同时就已经创建好一个静态的对象供系统使用,以后不再改变,所以天生是线程安全的。

public class Singleton{

  private Singleton(){}

  private static final Singleton singleton = new Singleton();

  //静态工厂方法

  public static Singleton getInstance(){

    return singleton ;

  }

}

posted @ 2021-11-17 19:11  cxiaojing  阅读(23)  评论(0)    收藏  举报