隨筆 - 0, 文章 - 75, 評論 - 0, 引用 - 0
          數(shù)據(jù)加載中……

          Java單例模式

          第一種:


          定義私有構(gòu)造函數(shù):


          private Single1(){}


          定義私有對象:


          private static Single1 instance=new
          Single1();


          定義公共靜態(tài)方法:


          public static Single1 create(){


          return instance;


          }


          外界只需調(diào)用靜態(tài)方法,即可獲得該對象:


          Single1 test =
          Single1.create();


          第一種特點:調(diào)用塊,不調(diào)用也有空間保存對象


          -------------------------------------------


          第二種:(推薦)


          同上,定義私有構(gòu)造函數(shù):


          private Single2(){}


          定義私有對象,不要 new 出對象!


          private static Single2 instance;


          寫公共靜態(tài)方法:


          public synchronized static Single2
          create(){


          init();


          if(instance == null){


          synchronized(Single2.class){
          //這里還需上鎖,因為第一個人進(jìn)來后,開始等待new對象


          if(instance
          == null) //這時如果第二人也進(jìn)來了,不能讓第二人也new對象



          instance = new Single2();


          }


          return instance;


          }


          return
          instance;


          }


          public static void init(){} //用來做初始化



          解釋:synchronized關(guān)鍵字,代表這個方法加鎖,相當(dāng)于不管哪一個線程A每次運(yùn)行到這個方法時,都要檢查有沒有其它正在用這個方法的線程B(或者C
          D等),有的話要等正在使用這個方法的線程B(或者C D)運(yùn)行完這個方法后再運(yùn)行此線程A,沒有的話,直接運(yùn)行它包括兩種用法:synchronized 方法和
          synchronized 塊。


          防止多人訪問卡死


          第二種特點:不在內(nèi)存中保存對象,第一次創(chuàng)建對象慢

          posted on 2012-04-22 15:13 hantai 閱讀(106) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 共和县| 临漳县| 江华| 昭觉县| 万山特区| 阿尔山市| 南充市| 集安市| 三门县| 永德县| 建瓯市| 阆中市| 铜梁县| 潞西市| 安龙县| 彝良县| 普兰县| 高州市| 长岛县| 五台县| 铜川市| 黔西县| 云龙县| 台山市| 苏尼特左旗| 洪雅县| 昌江| 弋阳县| 康定县| 乌兰县| 开江县| 徐州市| 白沙| 沭阳县| 湄潭县| 台中市| 汶上县| 漾濞| 明光市| 阜南县| 政和县|