锘??xml version="1.0" encoding="utf-8" standalone="yes"?>97se亚洲综合在线,亚洲国产精品碰碰,亚洲人成人一区二区三区http://www.tkk7.com/ldwblog/category/44998.html鎬佸害鍐沖畾涓鍒?/description>zh-cnTue, 07 Jan 2020 10:49:50 GMTTue, 07 Jan 2020 10:49:50 GMT60涓漢鍏紬鍙楓孞ava鐖卞ソ鑰呯ぞ鍖恒嶉珮璐ㄩ噺鍘熷垱鏂囩珷鎸佺畫杈撳嚭錛屾榪庡悇浣嶅皬涓誨叧娉?/title><link>http://www.tkk7.com/ldwblog/archive/2019/10/30/434887.html</link><dc:creator>David1228</dc:creator><author>David1228</author><pubDate>Wed, 30 Oct 2019 06:10:00 GMT</pubDate><guid>http://www.tkk7.com/ldwblog/archive/2019/10/30/434887.html</guid><wfw:comment>http://www.tkk7.com/ldwblog/comments/434887.html</wfw:comment><comments>http://www.tkk7.com/ldwblog/archive/2019/10/30/434887.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/ldwblog/comments/commentRss/434887.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/ldwblog/services/trackbacks/434887.html</trackback:ping><description><![CDATA[blogjava緗戠珯涓庡崥瀹㈠洯鍚堝茍浜嗭紝瀵筨logjava榪樻槸鏈夋劅鎯呯殑銆?br />騫朵笖blogjava緗戠珯鍙戝竷鐨勬枃绔犳槸鍦ㄥ崥瀹㈠洯棣栭〉鐪嬩笉鍒扮殑銆?br />blogjava緗戠珯棣栭〉鑳界湅鍒幫紝浣犲彲浠ョ偣鍑繪爣棰樿繘鍏ュ彲浠ョ湅鍒板浘鐗囦簩緇寸爜淇℃伅銆?br /><br /><strong style="color: red; font-size: 14pt;">Java鐖卞ソ鑰呯ぞ鍖?/strong><br />鍏紬鍙峰唴瀹圭畝浠嬶細<br /><p><span style="background-color: yellow; color: red;">涓撴敞浜庡垎浜獼ava鍚庣鐩稿叧鎶鏈佽佸徃鏈哄疄鎴樺共璐э紝涓嶉檺浜嶫VM銆佸茍鍙戙佽璁℃ā寮忋佹ц兘浼樺寲銆佸垎甯冨紡&寰湇鍔°佷簯鍘熺敓銆佸ぇ鏁版嵁鐩稿叧涓婚銆?/span><br style="color: red;" /><span style="background-color: yellow; color: red;">甯屾湜鍏蟲敞鐨勪綘鍋滀笅鑴氭錛屽畾鏈夋墍鏀惰幏銆?/span><br style="color: red;" /><br />浠ュ墠鐨勪釜浜哄崥瀹㈠唴瀹逛笉濂借縼縐伙紝鎵浠ユ垜鎵撶畻鏍規嵁鑷繁鐨勫騫寸粡楠岋紝涓嶆柇鏁寸悊杈撳嚭鏈変環鍊肩殑鍐呭銆?br />鐩墠鍏紬鍙峰唴瀹規湁鍏充簬<span style="background-color: yellow; color: red;">SpringCloud錛堝井鏈嶅姟妗嗘灦錛夈丼kywalking錛圓PM鐩戞帶璋冪敤閾撅級銆丣VM錛圙C鍒嗘瀽銆佸唴瀛樻硠婕忓垎鏋愶級銆佸茍鍙戠紪紼?/span>鐩稿叧鍘熷垱瀹炴垬鏂囩珷宸插嚭鐐夈?br /><br />鏈榪戝垰寮濮嬪凡緇忔湁涓嶅皯灝忎紮浼村叧娉ㄤ簡錛屾湡寰呰兘鏈夊垢鎼滅儲鍒版湰鍗氬鐨勫悓瀛︼紝鍙互鎵爜鍏蟲敞涓涓嬶紝涓嶈儨鎰熸縺銆?br />澶у鏈変換浣曟妧鏈佽亴鍦恒侀潰璇曚笂鐨勯棶棰橀兘鍙互涓庢垜浜ゆ祦銆?br /><br /><span style="background-color: yellow;"><strong>鏂瑰紡涓錛?/strong></span><span style="color: red; background-color: yellow;"><strong>鎵爜浠ヤ笅鍏紬鍙蜂簩緇寸爜錛?/strong></span><br /><img src="http://www.tkk7.com/images/blogjava_net/ldwblog/Java%E7%88%B1%E5%A5%BD%E8%80%85%E7%A4%BE%E5%8C%BA%E4%BA%8C%E7%BB%B4%E7%A0%81.png" border="0" alt="" /><br /><br />鏂瑰紡浜岋細<span style="color: red;">鍦ㄥ井淇′笂鐩存帴鎼滅儲錛?nbsp;</span><span style="color: red; background-color: yellow;">javatech_cbo</span><br /><br />鎰熻阿鍚勪綅灝忎紮浼寸殑鏀寔錛屽悗緇細鍦ㄨ鍏紬鍙蜂笂杈撳嚭澶ч噺鐨勬湁浠峰肩殑瀹炴垬騫茶揣 錛屾湡寰呬笌浣犱竴鍚岃繘姝ヤ笌鎴愰暱銆?br /></p><img src ="http://www.tkk7.com/ldwblog/aggbug/434887.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/ldwblog/" target="_blank">David1228</a> 2019-10-30 14:10 <a href="http://www.tkk7.com/ldwblog/archive/2019/10/30/434887.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>綆鍗曞伐鍘傛ā寮忎笌鎶借薄宸ュ巶妯″紡http://www.tkk7.com/ldwblog/archive/2013/07/04/401215.htmlDavid1228David1228Thu, 04 Jul 2013 09:07:00 GMThttp://www.tkk7.com/ldwblog/archive/2013/07/04/401215.htmlhttp://www.tkk7.com/ldwblog/comments/401215.htmlhttp://www.tkk7.com/ldwblog/archive/2013/07/04/401215.html#Feedback0http://www.tkk7.com/ldwblog/comments/commentRss/401215.htmlhttp://www.tkk7.com/ldwblog/services/trackbacks/401215.html闃呰鍏ㄦ枃

David1228 2013-07-04 17:07 鍙戣〃璇勮
]]>
錛堣漿錛夊畾鏃朵笖鍛ㄦ湡鎬х殑浠誨姟鐮旂┒I--Timer ---- 浠誨姟鐮旂┒II--ScheduledThreadPoolExecutorhttp://www.tkk7.com/ldwblog/archive/2013/03/18/396615.htmlDavid1228David1228Mon, 18 Mar 2013 10:58:00 GMThttp://www.tkk7.com/ldwblog/archive/2013/03/18/396615.htmlhttp://www.tkk7.com/ldwblog/comments/396615.htmlhttp://www.tkk7.com/ldwblog/archive/2013/03/18/396615.html#Feedback0http://www.tkk7.com/ldwblog/comments/commentRss/396615.htmlhttp://www.tkk7.com/ldwblog/services/trackbacks/396615.html闃呰鍏ㄦ枃

David1228 2013-03-18 18:58 鍙戣〃璇勮
]]>
璁捐妯″紡涔婥omposite妯″紡http://www.tkk7.com/ldwblog/archive/2012/10/12/389470.htmlDavid1228David1228Fri, 12 Oct 2012 08:20:00 GMThttp://www.tkk7.com/ldwblog/archive/2012/10/12/389470.htmlhttp://www.tkk7.com/ldwblog/comments/389470.htmlhttp://www.tkk7.com/ldwblog/archive/2012/10/12/389470.html#Feedback0http://www.tkk7.com/ldwblog/comments/commentRss/389470.htmlhttp://www.tkk7.com/ldwblog/services/trackbacks/389470.html鍋囪鎮ㄤ粖澶╄寮鍙戜竴涓姩鐢葷紪杈戠▼寮忥紝鍔ㄧ敾鐢卞獎鏍鹼紙Frame錛夌粍鎴愶紝鏁頒釜褰辨牸緇勫悎涓哄姩鐢繪竻鍗曪紝鍔ㄧ敾娓呭崟涔熷彲浠ョ敱鍏跺畠宸插畬鎴愮殑鍔ㄧ敾娓呭崟緇勬垚錛屼篃鍙互鍦ㄥ姩鐢繪竻鍗曚笌娓呭崟涔嬮棿鍔犲叆涓埆褰辨牸銆傛棤璁烘槸褰辨牸鎴栧姩鐢繪竻鍗曢兘鍙互鎾斁錛岃屽姩鐢繪竻鍗曡礋璐g殑灝辨槸緇勫悎褰辨牸鎴栧姩鐢繪竻鍗曪紝鎵浠ュ彲浠ヨ繖涔堣璁★細




瀵逛簬Frame鑰岃█錛孭laylist鏄竴涓鍣紝鐒惰孭laylist涔熷疄浣淧layable錛屾墍浠ュ畠涔熷彲浠ユ挱鏀撅紝鎮ㄥ彲浠ヨ繘涓姝ュ湴灝哖laylist緇勫悎鑷沖彟涓涓狿laylist涓紝浠ュ艦鎴愭洿闀跨殑鎾斁娓呭崟銆備互Java瀹炵幇鐨勮瘽銆?br />浠ava瀵︾従鐨勮┍銆?br />
import java.util.*;

interface Playable {
void play();
}

class Frame implements Playable {
private String image;
Frame(String image) {
this.image = image;
}
public void play() {
System.out.println("鎾斁 " + image);
}
}

class Playlist implements Playable {
private List<Playable> list = new ArrayList<Playable>();
public void add(Playable playable) {
list.add(playable);
}
public void play() {
for(Playable playable : list) {
playable.play();
}
}
}

public class Main {
public static void main(String[] args) {
Frame logo = new Frame("鐗囬牠 LOGO");

Playlist playlist1 = new Playlist();
playlist1.add(new Frame("Duke 宸︽彯鎵?));
playlist1.add(new Frame("Duke 鍙蟲彯鎵?));

Playlist playlist2 = new Playlist();
playlist2.add(new Frame("Duke 璧板乏鑵?));
playlist2.add(new Frame("Duke 璧板彸鑵?));

Playlist all = new Playlist();
all.add(logo);
all.add(playlist1);
all.add(playlist2);

all.play();
}
}

浠ython瀵︾従鐨勮┍錛?br />
class Frame:
def __init__(self, image):
self.image = image
def play(self):
print("鎾斁 " + self.image)

class Playlist:
def __init__(self):
self.list = []
def add(self, playable):
self.list.append(playable);
def play(self):
for playable in self.list:
playable.play()

logo = Frame("鐗囬牠 LOGO")

playlist1 = Playlist()
playlist1.add(Frame("Duke 宸︽彯鎵?))
playlist1.add(Frame("Duke 鍙蟲彯鎵?))

playlist2 = Playlist()
playlist2.add(Frame("Duke 璧板乏鑵?))
playlist2.add(Frame("Duke 璧板彸鑵?))

all = Playlist()
all.add(logo)
all.add(playlist1)
all.add(playlist2)

all.play();浠ML鏉ヨ〃紺篊omposite妯″紡鐨勭粨鏋勶細



鍏鋒湁灞傛鎬ф垨緇勫悎鎬х殑鐗╀歡鍙互浣跨敤Composite妯″紡錛屽儚鏄數璺厓浠躲佽紿楀厓浠剁瓑錛屼嬌鐢–omposite妯″紡鍙互澶уぇ鍑忎綆榪欎簺鍏冧歡璁捐鐨勫鏉傚害錛屼互Java鏍囧噯API涓瑼WT瑙嗙獥鍏冧歡涓轟緥錛?/small>Component涓婃湁涓猵aint()鏂規硶錛屽彲浠ヨ繘琛屽厓浠剁殑緇樺埗錛?/small>Container鍙互瀹圭撼Component錛堝Button銆丩abel絳夛級錛岃孋ontainer緇ф壙Component錛屾墍浠ontainer涔熷彲浠ュ綰矯ontainer錛岃繖涔熸槸Composite妯″紡鐨勫疄闄呬緥瀛愶細
 

from 錛?nbsp;http://caterpillar.onlyfun.net/Gossip/index.html 





David1228 2012-10-12 16:20 鍙戣〃璇勮
]]>
澶氱嚎紼嬩腑鍗曚緥妯″紡http://www.tkk7.com/ldwblog/archive/2010/05/14/320977.htmlDavid1228David1228Fri, 14 May 2010 06:17:00 GMThttp://www.tkk7.com/ldwblog/archive/2010/05/14/320977.htmlhttp://www.tkk7.com/ldwblog/comments/320977.htmlhttp://www.tkk7.com/ldwblog/archive/2010/05/14/320977.html#Feedback0http://www.tkk7.com/ldwblog/comments/commentRss/320977.htmlhttp://www.tkk7.com/ldwblog/services/trackbacks/320977.htmlAbstract

         鍦ㄥ紑鍙戜腑錛屽鏋滄煇涓疄渚嬬殑鍒涘緩闇瑕佹秷鑰楀緢澶氱郴緇熻祫婧愶紝閭d箞鎴戜滑閫氬父浼氫嬌鐢ㄦ儼鎬у姞杞芥満鍒訛紝涔熷氨鏄鍙湁褰撲嬌鐢ㄥ埌榪欎釜瀹炰緥鐨勬椂鍊欐墠浼氬垱寤鴻繖涓疄渚嬶紝榪欎釜濂藉鍦ㄥ崟渚嬫ā寮忎腑寰楀埌浜嗗箍娉涘簲鐢ㄣ傝繖涓満鍒跺湪single-threaded鐜涓嬬殑瀹炵幇闈炲父綆鍗曪紝鐒惰屽湪multi-threaded鐜涓嬪嵈瀛樺湪闅愭偅銆傛湰鏂囬噸鐐逛粙緇嶆儼鎬у姞杞芥満鍒朵互鍙婂叾鍦ㄥ綰跨▼鐜涓嬬殑浣跨敤鏂規硶銆傦紙浣滆卬umberzero錛屽弬鑰僆BM鏂囩珷銆奃ouble-checked locking and the Singleton pattern銆嬶紝嬈㈣繋杞澆涓庤璁猴級

1       鍗曚緥妯″紡鐨勬儼鎬у姞杞?br /> 閫氬父褰撴垜浠璁′竴涓崟渚嬬被鐨勬椂鍊欙紝浼氬湪綾葷殑鍐呴儴鏋勯犺繖涓被錛堥氳繃鏋勯犲嚱鏁幫紝鎴栬呭湪瀹氫箟澶勭洿鎺ュ垱寤猴級錛屽茍瀵瑰鎻愪緵涓涓猻tatic getInstance鏂規硶鎻愪緵鑾峰彇璇ュ崟渚嬪璞$殑閫斿緞銆備緥濡傦細

Java浠g爜 < type="application/x-shockwave-flash" width="14" height="15" src="http://xupo.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" src="http://xupo.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=public%20class%20Singleton%20%20%20%20%20%20%0A%7B%20%20%20%20%20%20%0A%20%20%20%20private%20static%20Singleton%20instance%20%3D%20new%20Singleton()%3B%20%20%20%20%20%20%0A%20%20%20%20private%20Singleton()%7B%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%E2%80%A6%20%20%20%20%20%20%0A%20%20%20%20%7D%20%20%20%20%20%20%0A%20%20%20%20public%20static%20Singleton%20getInstance()%7B%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20return%20instance%3B%20%20%20%20%20%20%20%0A%20%20%20%20%7D%20%20%20%20%20%20%0A%7D%20%20%20%20%20%0A" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" height="15" width="14">
public   class  Singleton        
{        
    private   static  Singleton instance =  new  Singleton();        
    private  Singleton(){        
        …        
    }        
    public   static  Singleton getInstance(){        
             return  instance;         
    }        
}       
public class Singleton     
{     
    private static Singleton instance = new Singleton();     
    private Singleton(){     
        …     
    }     
    public static Singleton getInstance(){     
             return instance;      
    }     
}    

         榪欐牱鐨勪唬鐮佺己鐐規槸錛氱涓嬈″姞杞界被鐨勬椂鍊欎細榪炲甫鐫鍒涘緩Singleton瀹炰緥錛岃繖鏍風殑緇撴灉涓庢垜浠墍鏈熸湜鐨勪笉鍚岋紝鍥犱負鍒涘緩瀹炰緥鐨勬椂鍊欏彲鑳藉茍涓嶆槸鎴戜滑闇瑕佽繖涓疄渚嬬殑鏃跺欍傚悓鏃跺鏋滆繖涓猄ingleton瀹炰緥鐨勫垱寤洪潪甯告秷鑰楃郴緇熻祫婧愶紝鑰屽簲鐢ㄥ緇堥兘娌℃湁浣跨敤Singleton瀹炰緥錛岄偅涔堝垱寤篠ingleton娑堣楃殑緋葷粺璧勬簮灝辮鐧界櫧嫻垂浜嗐?/p>

         涓轟簡閬垮厤榪欑鎯呭喌錛屾垜浠氬父浣跨敤鎯版у姞杞界殑鏈哄埗錛屼篃灝辨槸鍦ㄤ嬌鐢ㄧ殑鏃跺欐墠鍘誨垱寤恒備互涓婁唬鐮佺殑鎯版у姞杞戒唬鐮佸涓嬶細

Java浠g爜 < type="application/x-shockwave-flash" width="14" height="15" src="http://xupo.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" src="http://xupo.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=public%20class%20Singleton%7B%20%20%20%20%20%20%0A%20%20%20%20private%20static%20Singleton%20instance%20%3D%20null%3B%20%20%20%20%20%20%0A%20%20%20%20private%20Singleton()%7B%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%E2%80%A6%20%20%20%20%20%20%0A%20%20%20%20%7D%20%20%20%20%20%20%0A%20%20%20%20public%20static%20Singleton%20getInstance()%7B%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20if%20(instance%20%3D%3D%20null)%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20instance%20%3D%20new%20Singleton()%3B%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20instance%3B%20%20%20%20%20%20%20%0A%20%20%20%20%7D%20%20%20%20%20%20%0A%7D%20%20%20%20%20%0A" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" height="15" width="14">
public   class  Singleton{        
    private   static  Singleton instance =  null ;        
    private  Singleton(){        
        …        
    }        
    public   static  Singleton getInstance(){        
        if  (instance ==  null )        
            instance = new  Singleton();         
                return  instance;         
    }        
}       
public class Singleton{     
    private static Singleton instance = null;     
    private Singleton(){     
        …     
    }     
    public static Singleton getInstance(){     
        if (instance == null)     
            instance = new Singleton();      
                return instance;      
    }     
}    
 
         榪欐牱錛屽綋鎴戜滑絎竴嬈¤皟鐢⊿ingleton.getInstance()鐨勬椂鍊欙紝榪欎釜鍗曚緥鎵嶈鍒涘緩錛岃屼互鍚庡啀嬈¤皟鐢ㄧ殑鏃跺欎粎浠呰繑鍥炶繖涓崟渚嬪氨鍙互浜嗐?/p>

2       鎯版у姞杞藉湪澶氱嚎紼嬩腑鐨勯棶棰?br /> 鍏堝皢鎯版у姞杞界殑浠g爜鎻愬彇鍑烘潵錛?nbsp;                           

Java浠g爜 < type="application/x-shockwave-flash" width="14" height="15" src="http://xupo.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" src="http://xupo.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=public%20static%20Singleton%20getInstance()%7B%20%20%20%20%20%20%0A%20%20%20%20if%20(instance%20%3D%3D%20null)%20%20%20%20%20%20%0A%20%20%20%20instance%20%3D%20new%20Singleton()%3B%20%20%20%20%20%20%20%0A%20%20%20%20return%20instance%3B%20%20%20%20%20%20%20%0A%7D%20%20%20%20" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" height="15" width="14">
public   static  Singleton getInstance(){        
    if  (instance ==  null )        
    instance = new  Singleton();         
    return  instance;         
}      
public static Singleton getInstance(){     
    if (instance == null)     
    instance = new Singleton();      
    return instance;      
}             榪欐槸濡傛灉涓や釜綰跨▼A鍜孊鍚屾椂鎵ц浜嗚鏂規硶錛岀劧鍚庝互濡備笅鏂瑰紡鎵ц錛?/p>

1.         A榪涘叆if鍒ゆ柇錛屾鏃秄oo涓簄ull錛屽洜姝よ繘鍏f鍐?/p>

2.         B榪涘叆if鍒ゆ柇錛屾鏃禔榪樻病鏈夊垱寤篺oo錛屽洜姝oo涔熶負null錛屽洜姝涔熻繘鍏f鍐?/p>

3.         A鍒涘緩浜嗕竴涓狥oo騫惰繑鍥?/p>

4.         B涔熷垱寤轟簡涓涓狥oo騫惰繑鍥?/p>

姝ゆ椂闂鍑虹幇浜嗭紝鎴戜滑鐨勫崟渚嬭鍒涘緩浜嗕袱嬈★紝鑰岃繖騫朵笉鏄垜浠墍鏈熸湜鐨勩?/p>

3       鍚勭瑙e喅鏂規鍙婂叾瀛樺湪鐨勯棶棰?br /> 3.1     浣跨敤Class閿佹満鍒?br /> 浠ヤ笂闂鏈鐩磋鐨勮В鍐沖姙娉曞氨鏄粰getInstance鏂規硶鍔犱笂涓涓猻ynchronize鍓嶇紑錛岃繖鏍鋒瘡嬈″彧鍏佽涓涓幇鎴愯皟鐢╣etInstance鏂規硶錛?/p>

Java浠g爜 < type="application/x-shockwave-flash" width="14" height="15" src="http://xupo.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" src="http://xupo.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=public%20static%20synchronized%20Singleton%20getInstance()%7B%20%20%20%20%20%20%0A%20%20%20%20if%20(instance%20%3D%3D%20null)%20%20%20%20%20%20%0A%20%20%20%20instance%20%3D%20new%20Singleton()%3B%20%20%20%20%20%20%20%0A%20%20%20%20return%20instance%3B%20%20%20%20%20%20%20%0A%7D%20%20%20%20%20%0A" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" height="15" width="14">
public   static   synchronized  Singleton getInstance(){        
    if  (instance ==  null )        
    instance = new  Singleton();         
    return  instance;         
}       
public static synchronized Singleton getInstance(){     
    if (instance == null)     
    instance = new Singleton();      
    return instance;      
}    
    榪欑瑙e喅鍔炴硶鐨勭‘鍙互闃叉閿欒鐨勫嚭鐜幫紝浣嗘槸瀹冨嵈寰堝獎鍝嶆ц兘錛氭瘡嬈¤皟鐢╣etInstance鏂規硶鐨勬椂鍊欓兘蹇呴』鑾峰緱Singleton鐨勯攣錛岃屽疄闄呬笂錛屽綋鍗曚緥瀹炰緥琚垱寤轟互鍚庯紝鍏跺悗鐨勮姹傛病鏈夊繀瑕佸啀浣跨敤浜掓枼鏈哄埗浜?/p>

3.2     double-checked locking
鏇劇粡鏈変漢涓轟簡瑙e喅浠ヤ笂闂錛屾彁鍑轟簡double-checked locking鐨勮В鍐蟲柟妗?/p>

Java浠g爜 < type="application/x-shockwave-flash" width="14" height="15" src="http://xupo.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" src="http://xupo.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=public%20static%20Singleton%20getInstance()%7B%20%20%20%20%20%20%0A%20%20%20%20if%20(instance%20%3D%3D%20null)%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20synchronized(instance)%7B%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20if(instance%20%3D%3D%20null)%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20instance%20%3D%20new%20Singleton()%3B%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%0A%20%20%20%20return%20instance%3B%20%20%20%20%20%20%20%0A%7D" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" height="15" width="14">
public   static  Singleton getInstance(){        
    if  (instance ==  null )        
        synchronized (instance){        
            if (instance ==  null )        
                instance = new  Singleton();        
        }        
    return  instance;         
}  
public static Singleton getInstance(){     
    if (instance == null)     
        synchronized(instance){     
            if(instance == null)     
                instance = new Singleton();     
        }     
    return instance;      
}         璁╂垜浠潵鐪嬩竴涓嬭繖涓唬鐮佹槸濡備綍宸ヤ綔鐨勶細棣栧厛褰撲竴涓嚎紼嬪彂鍑鴻姹傚悗錛屼細鍏堟鏌nstance鏄惁涓簄ull錛屽鏋滀笉鏄垯鐩存帴榪斿洖鍏跺唴瀹癸紝榪欐牱閬垮厤浜嗚繘鍏?synchronized鍧楁墍闇瑕佽姳璐圭殑璧勬簮銆傚叾嬈★紝鍗充嬌絎?鑺傛彁鍒扮殑鎯呭喌鍙戠敓浜嗭紝涓や釜綰跨▼鍚屾椂榪涘叆浜嗙涓涓猧f鍒ゆ柇錛岄偅涔堜粬浠篃蹇呴』鎸夌収欏哄簭鎵ц synchronized鍧椾腑鐨勪唬鐮侊紝絎竴涓繘鍏ヤ唬鐮佸潡鐨勭嚎紼嬩細鍒涘緩涓涓柊鐨凷ingleton瀹炰緥錛岃屽悗緇殑綰跨▼鍒欏洜涓烘棤娉曢氳繃if鍒ゆ柇錛岃屼笉浼氬垱寤哄浣欑殑瀹炰緥銆?/p>

         涓婅堪鎻忚堪浼間箮宸茬粡瑙e喅浜嗘垜浠潰涓寸殑鎵鏈夐棶棰橈紝浣嗗疄闄呬笂錛屼粠JVM鐨勮搴﹁錛岃繖浜涗唬鐮佷粛鐒跺彲鑳藉彂鐢熼敊璇?/p>

         瀵逛簬JVM鑰岃█錛屽畠鎵ц鐨勬槸涓涓釜Java鎸囦護銆傚湪Java鎸囦護涓垱寤哄璞″拰璧嬪兼搷浣滄槸鍒嗗紑榪涜鐨勶紝涔熷氨鏄instance = new Singleton();璇彞鏄垎涓ゆ鎵ц鐨勩備絾鏄疛VM騫朵笉淇濊瘉榪欎袱涓搷浣滅殑鍏堝悗欏哄簭錛屼篃灝辨槸璇存湁鍙兘JVM浼氫負鏂扮殑Singleton瀹炰緥鍒嗛厤絀洪棿錛岀劧鍚庣洿鎺ヨ祴鍊肩粰instance鎴愬憳錛岀劧鍚庡啀鍘誨垵濮嬪寲榪欎釜Singleton瀹炰緥銆傝繖鏍峰氨浣垮嚭閿欐垚涓轟簡鍙兘錛屾垜浠粛鐒朵互A銆丅涓や釜綰跨▼涓轟緥錛?/p>

1.         A銆丅綰跨▼鍚屾椂榪涘叆浜嗙涓涓猧f鍒ゆ柇

2.         A棣栧厛榪涘叆synchronized鍧楋紝鐢變簬instance涓簄ull錛屾墍浠ュ畠鎵цinstance = new Singleton();

3.         鐢變簬JVM鍐呴儴鐨勪紭鍖栨満鍒訛紝JVM鍏堢敾鍑轟簡涓浜涘垎閰嶇粰Singleton瀹炰緥鐨勭┖鐧藉唴瀛橈紝騫惰祴鍊肩粰instance鎴愬憳錛堟敞鎰忔鏃禞VM娌℃湁寮濮嬪垵濮嬪寲榪欎釜瀹炰緥錛夛紝鐒跺悗A紱誨紑浜唖ynchronized鍧椼?/p>

4.         B榪涘叆synchronized鍧楋紝鐢變簬instance姝ゆ椂涓嶆槸null錛屽洜姝ゅ畠椹笂紱誨紑浜唖ynchronized鍧楀茍灝嗙粨鏋滆繑鍥炵粰璋冪敤璇ユ柟娉曠殑紼嬪簭銆?/p>

5.         姝ゆ椂B綰跨▼鎵撶畻浣跨敤Singleton瀹炰緥錛屽嵈鍙戠幇瀹冩病鏈夎鍒濆鍖栵紝浜庢槸閿欒鍙戠敓浜嗐?/p>

4       閫氳繃鍐呴儴綾誨疄鐜板綰跨▼鐜涓殑鍗曚緥妯″紡
涓轟簡瀹炵幇鎱㈠姞杞斤紝騫朵笖涓嶅笇鏈涙瘡嬈¤皟鐢╣etInstance鏃墮兘蹇呴』浜掓枼鎵ц錛屾渶濂藉茍涓旀渶鏂逛究鐨勮В鍐沖姙娉曞涓嬶細

Java浠g爜 < type="application/x-shockwave-flash" width="14" height="15" src="http://xupo.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" src="http://xupo.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=public%20class%20Singleton%7B%20%20%20%20%20%20%0A%20%20%20%20private%20Singleton()%7B%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%E2%80%A6%20%20%20%20%20%20%0A%20%20%20%20%7D%20%20%20%20%20%20%0A%20%20%20%20private%20static%20class%20SingletonContainer%7B%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20private%20static%20Singleton%20instance%20%3D%20new%20Singleton()%3B%20%20%20%20%20%20%0A%20%20%20%20%7D%20%20%20%20%20%20%0A%20%20%20%20public%20static%20Singleton%20getInstance()%7B%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20return%20SingletonContainer.instance%3B%20%20%20%20%20%20%0A%20%20%20%20%7D%20%20%20%20%20%20%0A%7D%20%20%20%20%20%0A" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" height="15" width="14">
public   class  Singleton{        
    private  Singleton(){        
        …        
    }        
    private   static   class  SingletonContainer{        
        private   static  Singleton instance =  new  Singleton();        
    }        
    public   static  Singleton getInstance(){        
        return  SingletonContainer.instance;        
    }        
}       
public class Singleton{     
    private Singleton(){     
        …     
    }     
    private static class SingletonContainer{     
        private static Singleton instance = new Singleton();     
    }     
    public static Singleton getInstance(){     
        return SingletonContainer.instance;     
    }     
}    
       JVM鍐呴儴鐨勬満鍒惰兘澶熶繚璇佸綋涓涓被琚姞杞界殑鏃跺欙紝榪欎釜綾葷殑鍔犺澆榪囩▼鏄嚎紼嬩簰鏂ョ殑銆傝繖鏍峰綋鎴戜滑絎竴嬈¤皟鐢╣etInstance鐨勬椂鍊欙紝JVM鑳藉甯垜浠繚璇乮nstance鍙鍒涘緩涓嬈★紝騫朵笖浼氫繚璇佹妸璧嬪肩粰instance鐨勫唴瀛樺垵濮嬪寲瀹屾瘯錛岃繖鏍鋒垜浠氨涓嶇敤鎷呭績3.2涓殑闂銆傛澶栬鏂規硶涔熷彧浼氬湪絎竴嬈¤皟鐢ㄧ殑鏃跺欎嬌鐢ㄤ簰鏂ユ満鍒訛紝榪欐牱灝辮В鍐充簡3.1涓殑浣庢晥闂銆傛渶鍚巌nstance鏄湪絎竴嬈″姞杞絊ingletonContainer綾繪椂琚垱寤虹殑錛岃?SingletonContainer綾誨垯鍦ㄨ皟鐢╣etInstance鏂規硶鐨勬椂鍊欐墠浼氳鍔犺澆錛屽洜姝や篃瀹炵幇浜嗘儼鎬у姞杞姐?/p>

 

鏈枃鏉ヨ嚜CSDN鍗氬錛岃漿杞借鏍囨槑鍑哄錛歨ttp://blog.csdn.net/fancyerII/archive/2010/03/15/5382349.aspx



David1228 2010-05-14 14:17 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 老司机亚洲精品影院无码| 97性无码区免费| 免费国产草莓视频在线观看黄| 亚洲人6666成人观看| 亚洲一区二区三区免费在线观看 | 亚洲国产成人精品无码区在线秒播| 亚洲欧洲日产国码av系列天堂| 伊人久久大香线蕉亚洲五月天| 成人毛片18女人毛片免费| 国产极品粉嫩泬免费观看| 免费观看午夜在线欧差毛片 | 国内精品久久久久久久亚洲 | 亚洲另类无码专区首页| 婷婷亚洲天堂影院| 18禁黄网站禁片免费观看不卡| 亚洲国产成人综合精品| 亚洲国产精品无码久久九九大片| 91在线亚洲精品专区| 91天堂素人精品系列全集亚洲| 亚洲久本草在线中文字幕| 亚洲AV无码码潮喷在线观看| 亚洲一区AV无码少妇电影☆| 亚洲午夜爱爱香蕉片| 久久伊人亚洲AV无码网站| 国产亚洲精品成人AA片新蒲金| 亚洲VA中文字幕无码毛片| 久久久久亚洲av无码专区蜜芽 | 一区二区三区在线免费观看视频 | 亚洲三级在线视频| 色欲aⅴ亚洲情无码AV蜜桃| 免费在线观看一区| 暖暖免费在线中文日本| 24小时日本在线www免费的| 免费成人午夜视频| 亚洲高清美女一区二区三区| 国产成人精品亚洲2020| 一区二区视频免费观看| 222www免费视频| 久久久久亚洲精品无码网址| 亚洲成a人片在线观看中文!!!| 免费夜色污私人影院网站电影|