Java单例模式的四种写法

Posted 猿起

tags:

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

1.饿汉式

  public class DownLoad{

  private static final DownLoad mDownload =new DownLoad();

  private download(){

  }

  public static DownLoad getInstance(){

  return mDownload ;

  }

  }

2.懒汉式

 public class DownLoad{

  private static final DownLoad mDownload ;

  private download(){

  }

  public static DownLoad getInstance(){

    if(mDownload ==null){

    mDownload =new DownLoad();

    }

  return mDownload ;

  }

  }

3.double check(会出现空指针问题,可通过添加volatile关键字解决)

  public class DownLoad{

  private static volatile DownLoad mDownload ;

  private download(){

  }

  public static DownLoad getInstance(){

    if(mDownload ==null){

    synchronized(DownLoad.class){

      if(mDownload ){

        mDownload =new DownLoad();

      }

    }

   }

  return mDownload ;

  }

 }

4.静态内部类

  public class DownLoad{

    public static class{

    private static DownLoad mDownload=new DownLoad();

    public static DownLoad getInstance(){

      return mDownload;

    }

  }

}

以上是关于Java单例模式的四种写法的主要内容,如果未能解决你的问题,请参考以下文章

单例模式中的四种方式

单例模式的四种方式

swift实现单例的四种方式

单例模式(singleton)之“世上安得双全法”

python全栈开发补充单例模式的四种方式

Activity的四种加载模式