public class StaticInnerSingleton { //完成了懒汉式的延迟加载,同时static保证了线程安全。
private StaticInnerSingleton(){
}
public static StaticInnerSingleton getIntance(){
return SingletonHolder.mIntance;
}
private static class SingletonHolder{ //私有的,初始化的时候,没有调用getIntance方法则不会加载
private static final StaticInnerSingleton mIntance = new StaticInnerSingleton(); //static,final是jvm提供的同步机制,初始化后就无法修改了
}
}
这种写法是最为推崇的写法,利用static final关键字的同步机制,初始化后就无法修改保证了线程安全。,使用holder的方式保证了延迟加载,不适用不会被加载。
|
|