本文共 3762 字,大约阅读时间需要 12 分钟。
??????????????????????????????????????????????????????????????????(????)?
????????????????????????????????(???????)??????????????????????????????(??????session???)?
??????
????????????????????????????????????????????????????????????
public class SingleTon01 { //1. ??????, ???new private SingleTon01() {} //2.?????????? private static final SingleTon01 instance = new SingleTon01(); //3.?????????????????? public static SingleTon01 getInstance() { return instance; }} ??????????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????? ??????????????????????????????????????????
public class SingleTon02 { //1. ??????, ???new private SingleTon02() {} //2.?????????? private static SingleTon02 instance; static { instance = new SingleTon02(); } //3.?????????????????? public static SingleTon02 getInstance() { return instance; }} ??????????????????????????????????????????????????????
public class SingleTon03 { //1. ??????, ???new private SingleTon03() {} private static SingleTon03 singleTon03; public static SingleTon03 getInstance() { if (singleTon03 == null) { singleTon03 = new SingleTon03(); } return singleTon03; }} ????????????getInstance()??????????????singleTon03?????????????????????????????????????????????????????????????????A??????if??????????????????B???????B????????????????singleTon03????????????A?????A????????????????????????
????????????
public class SingleTon04 { //1. ??????, ???new private SingleTon04() {} private static SingleTon04 singleTon03; public static synchronized SingleTon04 getInstance() { if (singleTon03 == null) { singleTon03 = new SingleTon04(); } return singleTon03; }} ????A?B????????getInstance?????????synchronized??????????????????????????????????if????????????????????????synchronized????????????????????
???????????????????????????????????????getInstance()?????? ??????????????????????????????????? ??return???????????????
public class SingleTon05 { //1. ??????, ???new private SingleTon05() {} private static SingleTon05 singleTon03; public static SingleTon05 getInstance() { if (singleTon03 == null) { synchronized (SingleTon05.class) { singleTon03 = new SingleTon05(); } } return singleTon03; }} ??????????????????????????A???B????getInstance??????A???B??????????if????????????synchronized?????????????
public class SingleTon06 { //1. ??????, ????new private SingleTon06() {} private static volatile SingleTon06 singleTon06; public static SingleTon06 getInstance() { if (singleTon06 == null) { synchronized (SingleTon06.class) { if (singleTon06 == null) { singleTon06 = new SingleTon06(); } } } return singleTon06; }} ?????????????????????????????????????????????????Double-Check??????
public class SingleTon07 { //1. ??????, ???new private SingleTon07() {} private static class singleTon07Instance { private static final SingleTon07 INSTANCE = new SingleTon07(); } public static SingleTon07 getInstance() { return singleTon07Instance.INSTANCE; }} ???????????????????Java?????????????????????????????????????????????????????????????????????????????
public enum SingleTon08 { INSTANCE; public void method() {}} ??jdk1.5????????????????????????
转载地址:http://lyf.baihongyu.com/