Java获得完美的单例对象

这篇文章关于单例模式的分析与解释写的非常好,让我受益颇多,详情看右链接:

我这只是把具体的做法写下来,为以后自己使用方便

方式一:

  1. public class Singleton {
  2. private static volatile Singleton instance = null;
  3. private Singleton(){}
  4. public static Singleton getInstance() {
  5. if (instance == null) {
  6. synchronized (Singleton.class) {
  7. if (instance == null) {
  8. instance = new Singleton();
  9. }
  10. }
  11. }
  12. return instance;
  13. }
  14. }

方式一中的关键字volatile的使用方式在上述链接中有解释!

方式二:

  1. public class Singleton{
  2. private static class SingletonHolder{
  3. public static Singleton instance = new Singleton();
  4. }
  5. private Singleton(){}
  6. public static Singleton newInstance(){
  7. return SingletonHolder.instance;
  8. }
  9. }

经验分享 程序员 微信小程序 职场和发展