1 懒汉模式

public class Singleton {

    private Singleton singleton = null;

    private Singleton() {

    }

    public Singleton getInstance() {

       if (singleton == null) {

            singleton = new Singleton();
       } else {

            return singleton;

        }

    }
}

问题在于不是线程安全的。要线程安全,在getInstance前面加上synchronized关键字即可,但是开销太大。

2 饿汉模式

public class Singleton {

    private Singleton singleton = new Singleton();

    private Singleton() {

    }

    public Singletion getSingleton() {

        return singleton;
    }

}

 

3 静态内部类

public class Singleton {

    private static class SingletonHolder {

        private static Singleton instance = new Singleton();

    }

    public static Singleton getInstance() {

        return SingletonHolder.instance;
    }

}

 

相关文章:

  • 2022-12-23
  • 2021-12-08
  • 2021-12-23
  • 2021-10-16
  • 2021-11-14
  • 2022-12-23
  • 2021-12-07
猜你喜欢
  • 2022-12-23
  • 2022-01-30
  • 2021-12-03
  • 2021-12-23
  • 2022-12-23
相关资源
相似解决方案