??????Java1.5????汾??volatile???η????н??????????????????????????? volatile ?????????????????????????????????????????????????????????????????????????????????????????????????????? ??-??-?? ???? ??-??-?? ???????????е? ??-?? ????????????????????з????????????????????????? volatile ??????д?????????з??????????????????????????????“????”????????????????
??????????????????
public class Singleton{
private Singleton() {}
private static class SingletonHolder{
private static Singleton instance=new Singleton();
}
public static Singleton getInstance(){
return SingletonHolder.instance;
}
}
????????????д?????????????????????????????????JVM??????????????????????????????????????????????????????????????????????????????????????????????????????????? JDK ?汾?????????????Singleton????????????????????????????????????????getInstance()????????????SingletonHolder???????Singleton????????????????????????
??????????t?????????????????????????????????????н??????Ч?????????????????????????????????????????????????????????????????????????????
?????????????
public enum Singleton {
INSTANCE;
private Singleton() {}
public void method() {
}
}
??????Java1.5?汾????????????????ü?????????????????????Singleton.INSTANCE???????????????????????????????????????????double checked locking???????????????????л???????乥?????′????μ????????Effective Java???и????????????????????????????Singleton????????
??????????С??
???????????????????????????????????????????????????????????Android SDK??????????????????????????????е????????????????????????ж?????????????????????濼?????????????????????Ч?????????????????е??????????????Singleton??????????????Ρ?