android中单例的最佳两种写法

来源:互联网 发布:德州大气环境监测数据 编辑:程序博客网 时间:2024/06/05 15:49

1:双重检查锁定:

实际上,早在JDK1.5就引入volatile关键字,所以又有了一种更好的双重校验锁写法:

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

2:静态内部类的形式

class Foo {      private static class HelperHolder {       public static final MyApplication helper = new MyApplication();    }    public static MyApplication getHelper() {        return HelperHolder.helper;    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

内部类能使之 延迟初始化(lazy initialization),并且多线程安全,还能保证高性能。




0 0
原创粉丝点击