锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲午夜一区二区电影院,亚洲精品无码AV人在线播放,亚洲精品无码专区在线播放http://m.tkk7.com/shooper/category/10941.htmlBeginning Javazh-cnFri, 02 Mar 2007 06:31:39 GMTFri, 02 Mar 2007 06:31:39 GMT60鍒濊瘑Java鍐呴儴綾?/title><link>http://m.tkk7.com/shooper/articles/45315.html</link><dc:creator>Shooper.Java</dc:creator><author>Shooper.Java</author><pubDate>Tue, 09 May 2006 16:04:00 GMT</pubDate><guid>http://m.tkk7.com/shooper/articles/45315.html</guid><wfw:comment>http://m.tkk7.com/shooper/comments/45315.html</wfw:comment><comments>http://m.tkk7.com/shooper/articles/45315.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/shooper/comments/commentRss/45315.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/shooper/services/trackbacks/45315.html</trackback:ping><description><![CDATA[ <div id="g6icmwe" class="clear"> </div> <div id="6goy60c" class="item-body"> <div id="ymuy8wy" class="item-content"> <p>聽聽聽 鎻愯搗Java鍐呴儴綾伙紙Inner Class錛夊彲鑳藉緢澶氫漢涓嶅お鐔熸?zhèn)夊Q屽疄闄呬笂綾諱技鐨勬蹇靛湪C++閲屼篃鏈夛紝閭e氨鏄祵濂楃被錛圢ested Class錛夛紝鍏充簬榪欎袱鑰呯殑鍖哄埆涓庤仈緋伙紝鍦ㄤ笅鏂囦腑浼氭湁瀵規(guī)瘮銆傚唴閮ㄧ被浠庤〃闈笂鐪嬶紝灝辨槸鍦ㄧ被涓張瀹氫箟浜嗕竴涓被錛堜笅鏂囦細鐪嬪埌錛屽唴閮ㄧ被鍙互鍦ㄥ緢澶氬湴鏂瑰畾涔夛級錛岃屽疄闄呬笂騫舵病鏈夐偅涔堢畝鍗曪紝涔嶇湅涓婂幓鍐呴儴綾諱技涔庢湁浜涘浣欙紝瀹冪殑鐢ㄥ瀵逛簬鍒濆鑰呮潵璇村彲鑳藉茍涓嶆槸閭d箞鏄捐憲錛屼絾鏄殢鐫瀵瑰畠鐨勬繁鍏ヤ簡瑙o紝浣犱細鍙戠幇Java鐨勮璁¤呭湪鍐呴儴綾昏韓涓婄殑紜槸鐢ㄥ績鑹嫤銆傚浼氫嬌鐢ㄥ唴閮ㄧ被錛屾槸鎺屾彙Java楂樼駭緙栫▼鐨勪竴閮ㄥ垎錛屽畠鍙互璁╀綘鏇翠紭闆呭湴璁捐浣犵殑紼嬪簭緇撴瀯銆備笅闈粠浠ヤ笅鍑犱釜鏂歸潰鏉ヤ粙緇嶏細</p> <p>聽聽聽 <strong>絎竴嬈¤闈?/strong></p> <p>public interface Contents {</p> <p>聽聽聽 int value();</p> <p>}</p> <p>public interface Destination {</p> <p>聽聽聽 String readLabel();</p> <p>}</p> <p>public class Goods {</p> <p>聽聽聽 private class Content implements Contents {</p> <p>聽聽聽聽聽聽聽 private int i = 11;</p> <p>聽聽聽聽聽聽聽 public int value() { </p> <p>聽聽聽聽聽聽聽聽聽聽聽 return i; </p> <p>聽聽聽聽聽聽聽 }</p> <p>聽聽聽 }</p> <p>聽聽聽 protected class GDestination implements Destination {</p> <p>聽聽聽聽聽聽聽 private String label;</p> <p>聽聽聽聽聽聽聽 private GDestination(String whereTo) {</p> <p>聽聽聽聽聽聽聽聽聽聽聽 label = whereTo;</p> <p>聽聽聽聽聽聽聽 }</p> <p>聽聽聽聽聽聽聽 public String readLabel() { </p> <p>聽聽聽聽聽聽聽聽聽聽聽 return label; </p> <p>聽聽聽聽聽聽聽 }</p> <p>聽聽聽 }</p> <p>聽聽聽 public Destination dest(String s) {</p> <p>聽聽聽聽聽聽聽 return new GDestination(s);</p> <p>聽聽聽 }</p> <p>聽聽聽 public Contents cont() {</p> <p>聽聽聽聽聽聽聽 return new Content();</p> <p>聽聽聽 }</p> <p>}</p> <p>class TestGoods {</p> <p>聽聽聽 public static void main(String[] args) {</p> <p>聽聽聽聽聽聽聽 Goods p = new Goods();</p> <p>聽聽聽聽聽聽聽 Contents c = p.cont();</p> <p>聽聽聽聽聽聽聽 Destination d = p.dest("Beijing");</p> <p>聽聽聽 }</p> <p>}</p> <p>聽聽聽 鍦ㄨ繖涓緥瀛愰噷綾籆ontent鍜孏Destination琚畾涔夊湪浜嗙被Goods鍐呴儴錛屽茍涓斿垎鍒湁鐫protected鍜宲rivate淇グ絎︽潵鎺у埗璁塊棶綰у埆銆侰ontent浠h〃鐫Goods鐨勫唴瀹癸紝鑰孏Destination浠h〃鐫Goods鐨勭洰鐨勫湴銆傚畠浠垎鍒疄鐜頒簡涓や釜鎺ュ彛Content鍜孌estination銆傚湪鍚庨潰鐨刴ain鏂規(guī)硶閲岋紝鐩存帴鐢?Contents c鍜孌estination d榪涜鎿嶄綔錛屼綘鐢氳嚦榪炶繖涓や釜鍐呴儴綾葷殑鍚嶅瓧閮芥病鏈夌湅瑙侊紒榪欐牱錛屽唴閮ㄧ被鐨勭涓涓ソ澶勫氨浣撶幇鍑烘潵浜嗏曗曢殣钘忎綘涓嶆兂璁╁埆浜虹煡閬撶殑鎿嶄綔錛屼篃鍗沖皝瑁呮с?</p> <p>聽聽聽 鍚屾椂錛屾垜浠篃鍙戠幇浜嗗湪澶栭儴綾諱綔鐢ㄨ寖鍥翠箣澶栧緱鍒板唴閮ㄧ被瀵硅薄鐨勭涓涓柟娉曪紝閭e氨鏄埄鐢ㄥ叾澶栭儴綾葷殑鏂規(guī)硶鍒涘緩騫惰繑鍥炪備笂渚嬩腑鐨刢ont()鍜宒est()鏂規(guī)硶灝辨槸榪欎箞鍋氱殑銆傞偅涔堣繕鏈夋病鏈夊埆鐨勬柟娉曞憿錛熷綋鐒舵湁錛屽叾璇硶鏍煎紡濡備笅錛?/p> <p>聽聽聽 outerObject=new outerClass(Constructor Parameters);</p> <p>聽聽聽 outerClass.innerClass innerObject=outerObject.new InnerClass(Constructor Parameters);</p> <p>聽聽聽 娉ㄦ剰鍦ㄥ垱寤洪潪闈欐佸唴閮ㄧ被瀵硅薄鏃訛紝涓瀹氳鍏堝垱寤鴻搗鐩稿簲鐨勫閮ㄧ被瀵硅薄銆傝嚦浜庡師鍥狅紝涔熷氨寮曞嚭浜嗘垜浠笅涓涓瘽棰樷曗?/p> <p>聽聽聽 <strong>闈為潤鎬佸唴閮ㄧ被瀵硅薄鏈夌潃鎸囧悜鍏跺閮ㄧ被瀵硅薄鐨勫紩鐢?/strong></p> <p>聽聽聽 瀵瑰垰鎵嶇殑渚嬪瓙紼嶄綔淇敼錛?/p> <p>public class Goods {</p> <p>聽聽聽 private valueRate=2;</p> <p>聽聽聽 private class Content implements Contents {</p> <p>聽聽聽聽聽聽聽 private int i = 11*valueRate;</p> <p>聽聽聽聽聽聽聽 public int value() { </p> <p>聽聽聽聽聽聽聽聽聽聽聽 return i; </p> <p>聽聽聽聽聽聽聽 }</p> <p>聽聽聽 }</p> <p>聽聽聽 protected class GDestination implements Destination {</p> <p>聽聽聽聽聽聽聽 private String label;</p> <p>聽聽聽聽聽聽聽 private GDestination(String whereTo) {</p> <p>聽聽聽聽聽聽聽聽聽聽聽 label = whereTo;</p> <p>聽聽聽聽聽聽聽 }</p> <p>聽聽聽聽聽聽聽 public String readLabel() { </p> <p>聽聽聽聽聽聽聽聽聽聽聽 return label; </p> <p>聽聽聽聽聽聽聽 }</p> <p>聽聽聽 }</p> <p>聽聽聽 public Destination dest(String s) {</p> <p>聽聽聽聽聽聽聽 return new GDestination(s);</p> <p>聽聽聽 }</p> <p>聽聽聽 public Contents cont() {</p> <p>聽聽聽聽聽聽聽 return new Content();</p> <p>聽聽聽 }</p> <p>}</p> <p>聽聽聽 淇敼鐨勯儴鍒嗙敤钃濊壊鏄劇ず浜嗐傚湪榪欓噷鎴戜滑緇橤oods綾誨鍔犱簡涓涓猵rivate鎴愬憳鍙橀噺valueRate錛屾剰涔夋槸璐х墿鐨勪環(huán)鍊肩郴鏁幫紝鍦ㄥ唴閮ㄧ被Content鐨勬柟娉晇alue()璁$畻浠峰兼椂鎶婂畠涔樹笂銆傛垜浠彂鐜幫紝value()鍙互璁塊棶valueRate錛岃繖涔熸槸鍐呴儴綾葷殑絎簩涓ソ澶勨曗曚竴涓唴閮ㄧ被瀵硅薄鍙互璁塊棶鍒涘緩瀹冪殑澶栭儴綾誨璞$殑鍐呭錛岀敋鑷沖寘鎷鏈夊彉閲忥紒榪欐槸涓涓潪甯告湁鐢ㄧ殑鐗規(guī)э紝涓烘垜浠湪璁捐鏃舵彁渚涗簡鏇村鐨勬濊礬鍜屾嵎寰勩傝鎯沖疄鐜拌繖涓姛鑳斤紝鍐呴儴綾誨璞″氨蹇呴』鏈夋寚鍚戝閮ㄧ被瀵硅薄鐨勫紩鐢ㄣ侸ava緙栬瘧鍣ㄥ湪鍒涘緩鍐呴儴綾誨璞℃椂錛岄殣寮忕殑鎶婂叾澶栭儴綾誨璞$殑寮曠敤涔熶紶浜嗚繘鍘誨茍涓鐩翠繚瀛樼潃銆傝繖鏍峰氨浣垮緱鍐呴儴綾誨璞″緇堝彲浠ヨ闂叾澶栭儴綾誨璞★紝鍚屾椂榪欎篃鏄負浠涔堝湪澶栭儴綾諱綔鐢ㄨ寖鍥翠箣澶栧悜瑕佸垱寤哄唴閮ㄧ被瀵硅薄蹇呴』鍏堝垱寤哄叾澶栭儴綾誨璞$殑鍘熷洜銆?/p> <p>聽聽聽 鏈変漢浼氶棶錛屽鏋滃唴閮ㄧ被閲岀殑涓涓垚鍛樺彉閲忎笌澶栭儴綾葷殑涓涓垚鍛樺彉閲忓悓鍚嶏紝涔熷嵆澶栭儴綾葷殑鍚屽悕鎴愬憳鍙橀噺琚睆钄戒簡錛屾庝箞鍔烇紵娌′簨錛孞ava閲岀敤濡備笅鏍煎紡琛ㄨ揪澶栭儴綾葷殑寮曠敤錛?/p> <p>outerClass.this</p> <p>聽聽聽 鏈変簡瀹冿紝鎴戜滑灝變笉鎬曡繖縐嶅睆钄界殑鎯呭喌浜嗐?/p> <p>聽聽聽 <strong>闈欐佸唴閮ㄧ被</strong></p> <p>聽聽聽 鍜屾櫘閫氱殑綾諱竴鏍鳳紝鍐呴儴綾諱篃鍙互鏈夐潤鎬佺殑銆備笉榪囧拰闈為潤鎬佸唴閮ㄧ被鐩告瘮錛屽尯鍒氨鍦ㄤ簬闈欐佸唴閮ㄧ被娌℃湁浜嗘寚鍚戝閮ㄧ殑寮曠敤銆傝繖瀹為檯涓婂拰C++涓殑宓屽綾誨緢鐩稿儚浜嗭紝Java鍐呴儴綾諱笌C++宓屽綾繪渶澶х殑涓嶅悓灝卞湪浜庢槸鍚︽湁鎸囧悜澶栭儴鐨勫紩鐢ㄨ繖涓鐐逛笂錛屽綋鐒朵粠璁捐鐨勮搴︿互鍙婁互瀹冧竴浜涚粏鑺傛潵璁茶繕鏈夊尯鍒?/p> <p>聽聽聽 闄ゆ涔嬪錛屽湪浠諱綍闈為潤鎬佸唴閮ㄧ被涓紝閮戒笉鑳芥湁闈欐佹暟鎹紝闈欐佹柟娉曟垨鑰呭張涓涓潤鎬佸唴閮ㄧ被錛堝唴閮ㄧ被鐨勫祵濂楀彲浠ヤ笉姝竴灞傦級銆備笉榪囬潤鎬佸唴閮ㄧ被涓嵈鍙互鎷ユ湁榪欎竴鍒囥傝繖涔熺畻鏄袱鑰呯殑絎簩涓尯鍒惂銆?/p> <p>聽聽聽 <strong>灞閮ㄥ唴閮ㄧ被 </strong></p> <p>聽聽聽 鏄殑錛孞ava鍐呴儴綾諱篃鍙互鏄眬閮ㄧ殑錛屽畠鍙互瀹氫箟鍦ㄤ竴涓柟娉曠敋鑷充竴涓唬鐮佸潡涔嬪唴銆?/p> <p>public class Goods1 {</p> <p>聽聽聽聽 public Destination dest(String s) {</p> <p>聽聽聽聽聽聽聽聽聽 class GDestination implements Destination {</p> <p>聽聽聽聽聽聽聽聽聽聽聽聽聽聽 private String label;</p> <p>聽聽聽聽聽聽聽聽聽聽聽聽聽聽 private GDestination(String whereTo) {</p> <p>聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 label = whereTo;</p> <p>聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }</p> <p>聽聽聽聽聽聽聽聽聽聽聽聽聽聽 public String readLabel() { return label; }</p> <p>聽聽聽聽聽聽聽聽聽 }</p> <p>聽聽聽聽聽聽聽聽聽 return new GDestination(s);</p> <p>聽聽聽聽 }</p> <p>聽聽聽聽 public static void main(String[] args) {</p> <p>聽聽聽聽聽聽聽聽聽 Goods1 g= new Goods1();</p> <p>聽聽聽聽聽聽聽聽聽 Destination d = g.dest("Beijing");</p> <p>聽聽聽聽 }</p> <p>}</p> <p>聽聽聽 涓婇潰灝辨槸榪欐牱涓涓緥瀛愩傚湪鏂規(guī)硶dest涓垜浠畾涔変簡涓涓唴閮ㄧ被錛屾渶鍚庣敱榪欎釜鏂規(guī)硶榪斿洖榪欎釜鍐呴儴綾葷殑瀵硅薄銆傚鏋滄垜浠湪鐢ㄤ竴涓唴閮ㄧ被鐨勬椂鍊欎粎闇瑕佸垱寤哄畠鐨勪竴涓璞″茍鍒涚粰澶栭儴錛屽氨鍙互榪欐牱鍋氥傚綋鐒訛紝瀹氫箟鍦ㄦ柟娉曚腑鐨勫唴閮ㄧ被鍙互浣胯璁″鏍峰寲錛岀敤閫旂粷涓嶄粎浠呭湪榪欎竴鐐廣?/p> <p>聽聽聽 涓嬮潰鏈変竴涓洿鎬殑渚嬪瓙錛?/p> <p>public class Goods2{</p> <p>聽聽聽聽 private void internalTracking(boolean b) {</p> <p>聽聽聽聽聽聽聽聽聽 if(b) {</p> <p>聽聽聽聽聽聽聽聽聽聽聽聽聽聽 class TrackingSlip {</p> <p>聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 private String id;</p> <p>聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 TrackingSlip(String s) {</p> <p>聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 id = s;</p> <p>聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }</p> <p>聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 String getSlip() { return id; }</p> <p>聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }</p> <p>聽聽聽聽聽聽聽聽聽聽聽聽聽聽 TrackingSlip ts = new TrackingSlip("slip");</p> <p>聽聽聽聽聽聽聽聽聽聽聽聽聽聽 String s = ts.getSlip();</p> <p>聽聽聽聽聽聽聽聽聽 } </p> <p>聽聽聽聽 }</p> <p>聽聽聽聽 public void track() { internalTracking(true); }</p> <p>聽聽聽聽 public static void main(String[] args) {</p> <p>聽聽聽聽聽聽聽聽聽 Goods2 g= new Goods2();</p> <p>聽聽聽聽聽聽聽聽聽 g.track();</p> <p>聽聽聽聽 }</p> <p>}</p> <p>聽聽聽 浣犱笉鑳藉湪if涔嬪鍒涘緩榪欎釜鍐呴儴綾葷殑瀵硅薄錛屽洜涓鴻繖宸茬粡瓚呭嚭浜嗗畠鐨勪綔鐢ㄥ煙銆備笉榪囧湪緙栬瘧鐨勬椂鍊欙紝鍐呴儴綾籘rackingSlip鍜屽叾浠栫被涓鏍峰悓鏃惰緙栬瘧錛屽彧涓嶈繃瀹冪敱瀹冭嚜宸辯殑浣滅敤鍩燂紝瓚呭嚭浜嗚繖涓寖鍥村氨鏃犳晥錛岄櫎姝や箣澶栧畠鍜屽叾浠栧唴閮ㄧ被騫舵病鏈夊尯鍒?/p> <p>聽聽聽<strong> 鍖垮悕鍐呴儴綾?</strong></p> <p>聽聽聽 java鐨勫尶鍚嶅唴閮ㄧ被鐨勮娉曡鍒欑湅涓婂幓鏈変簺鍙ゆ紝涓嶈繃濡傚悓鍖垮悕鏁扮粍涓鏍鳳紝褰撲綘鍙渶瑕佸垱寤轟竴涓被鐨勫璞¤屼笖鐢ㄤ笉涓婂畠鐨勫悕瀛楁椂錛屼嬌鐢ㄥ唴閮ㄧ被鍙互浣夸唬鐮佺湅涓婂幓綆媧佹竻妤氥傚畠鐨勮娉曡鍒欐槸榪欐牱鐨勶細</p> <p>聽聽聽 new interfacename(){......}; 鎴?new superclassname(){......};</p> <p>聽聽聽 涓嬮潰鎺ョ潃鍓嶉潰緇х畫涓句緥瀛愶細</p> <p>public class Goods3 {</p> <p>聽聽聽聽 public Contents cont(){</p> <p>聽聽聽聽聽聽聽聽聽 return new Contents(){</p> <p>聽聽聽聽聽聽聽聽聽聽聽聽聽聽 private int i = 11;</p> <p>聽聽聽聽聽聽聽聽聽聽聽聽聽聽 public int value() { </p> <p>聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 return i; </p> <p>聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }</p> <p>聽聽聽聽聽聽聽聽聽 };</p> <p>聽聽聽聽 }</p> <p>}</p> <p>聽聽聽 榪欓噷鏂規(guī)硶cont()浣跨敤鍖垮悕鍐呴儴綾葷洿鎺ヨ繑鍥炰簡涓涓疄鐜頒簡鎺ュ彛Contents鐨勭被鐨勫璞★紝鐪嬩笂鍘葷殑紜崄鍒嗙畝媧併?/p> <p>聽聽聽 鍦╦ava鐨勪簨浠跺鐞嗙殑鍖垮悕閫傞厤鍣ㄤ腑錛屽尶鍚嶅唴閮ㄧ被琚ぇ閲忕殑浣跨敤銆備緥濡傚湪鎯沖叧闂獥鍙f椂鍔犱笂榪欐牱涓鍙ヤ唬鐮侊細</p> <p>frame.addWindowListener(new WindowAdapter(){</p> <p>聽聽聽聽 public void windowClosing(WindowEvent e){</p> <p>聽聽聽聽聽聽聽聽聽 System.exit(0); </p> <p>聽聽聽聽 }</p> <p>});</p> <p>聽聽聽 鏈変竴鐐歸渶瑕佹敞鎰忕殑鏄紝鍖垮悕鍐呴儴綾葷敱浜庢病鏈夊悕瀛楋紝鎵浠ュ畠娌℃湁鏋勯犲嚱鏁幫紙浣嗘槸濡傛灉榪欎釜鍖垮悕鍐呴儴綾葷戶鎵夸簡涓涓彧鍚湁甯﹀弬鏁版瀯閫犲嚱鏁扮殑鐖剁被錛屽垱寤哄畠鐨勬椂鍊欏繀欏誨甫涓婅繖浜涘弬鏁幫紝騫跺湪瀹炵幇鐨勮繃紼嬩腑浣跨敤super鍏抽敭瀛楄皟鐢ㄧ浉搴旂殑鍐呭錛夈傚鏋滀綘鎯寵鍒濆鍖栧畠鐨勬垚鍛樺彉閲忥紝鏈変笅闈㈠嚑縐嶆柟娉曪細</p> <p>聽聽聽 1.濡傛灉鏄湪涓涓柟娉曠殑鍖垮悕鍐呴儴綾伙紝鍙互鍒╃敤榪欎釜鏂規(guī)硶浼犺繘浣犳兂瑕佺殑鍙傛暟錛屼笉榪囪浣忥紝榪欎簺鍙傛暟蹇呴』琚0鏄庝負final銆?</p> <p>聽聽聽 2.灝嗗尶鍚嶅唴閮ㄧ被鏀歸犳垚鏈夊悕瀛楃殑灞閮ㄥ唴閮ㄧ被錛岃繖鏍峰畠?yōu)鍙互鎷ユ湁鏋勯犲嚱鏁頒簡銆?</p> <p>聽聽聽 3.鍦ㄨ繖涓尶鍚嶅唴閮ㄧ被涓嬌鐢ㄥ垵濮嬪寲浠g爜鍧椼?</p> <p>聽聽聽 <strong>涓轟粈涔堥渶瑕佸唴閮ㄧ被錛?/strong></p> <p>聽聽聽 java鍐呴儴綾繪湁浠涔堝ソ澶勶紵涓轟粈涔堥渶瑕佸唴閮ㄧ被錛?/p> <p>聽聽聽 棣栧厛涓句竴涓畝鍗曠殑渚嬪瓙錛屽鏋滀綘鎯沖疄鐜頒竴涓帴鍙o紝浣嗘槸榪欎釜鎺ュ彛涓殑涓涓柟娉曞拰浣犳瀯鎯崇殑榪欎釜綾諱腑鐨勪竴涓柟娉曠殑鍚嶇О錛屽弬鏁扮浉鍚岋紝浣犲簲璇ユ庝箞鍔烇紵榪欐椂鍊欙紝浣犲彲浠ュ緩涓涓唴閮ㄧ被瀹炵幇榪欎釜鎺ュ彛銆傜敱浜庡唴閮ㄧ被瀵瑰閮ㄧ被鐨勬墍鏈夊唴瀹歸兘鏄彲璁塊棶鐨勶紝鎵浠ヨ繖鏍峰仛鍙互瀹屾垚鎵鏈変綘鐩存帴瀹炵幇榪欎釜鎺ュ彛鐨勫姛鑳姐?/p> <p>聽聽聽 涓嶈繃浣犲彲鑳借璐ㄧ枒錛屾洿鏀逛竴涓嬫柟娉曠殑涓嶅氨琛屼簡鍚楋紵</p> <p>聽聽聽 鐨勭‘錛屼互姝や綔涓鴻璁″唴閮ㄧ被鐨勭悊鐢憋紝瀹炲湪娌℃湁璇存湇鍔涖?/p> <p>聽聽聽 鐪熸鐨勫師鍥犳槸榪欐牱鐨勶紝java涓殑鍐呴儴綾誨拰鎺ュ彛鍔犲湪涓璧鳳紝鍙互鐨勮В鍐沖父琚獵++紼嬪簭鍛樻姳鎬╦ava涓瓨鍦ㄧ殑涓涓棶棰樷曗曟病鏈夊緇ф壙銆傚疄闄呬笂錛孋++鐨勫緇ф壙璁捐璧鋒潵寰堝鏉傦紝鑰宩ava閫氳繃鍐呴儴綾誨姞涓婃帴鍙o紝鍙互寰堝ソ鐨勫疄鐜板緇ф壙鐨勬晥鏋溿?br /></p> </div> </div> <img src ="http://m.tkk7.com/shooper/aggbug/45315.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/shooper/" target="_blank">Shooper.Java</a> 2006-05-10 00:04 <a href="http://m.tkk7.com/shooper/articles/45315.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>ThreadLocal鐨勮璁′笌浣跨敤 http://m.tkk7.com/shooper/articles/45314.htmlShooper.JavaShooper.JavaTue, 09 May 2006 16:02:00 GMThttp://m.tkk7.com/shooper/articles/45314.htmlhttp://m.tkk7.com/shooper/comments/45314.htmlhttp://m.tkk7.com/shooper/articles/45314.html#Feedback0http://m.tkk7.com/shooper/comments/commentRss/45314.htmlhttp://m.tkk7.com/shooper/services/trackbacks/45314.html

銆銆鏃╁湪Java 1.2鎺ㄥ嚭涔嬫椂錛孞ava騫沖彴涓氨寮曞叆浜嗕竴涓柊鐨勬敮鎸侊細java.lang.ThreadLocal錛岀粰鎴戜滑鍦ㄧ紪鍐欏綰跨▼紼嬪簭鏃舵彁渚涗簡涓縐嶆柊鐨勯夋嫨銆備嬌鐢ㄨ繖涓伐鍏風被鍙互寰堢畝媧佸湴緙栧啓鍑轟紭緹庣殑澶氱嚎紼嬬▼搴忥紝铏界劧ThreadLocal闈炲父鏈夌敤錛屼絾鏄技涔庣幇鍦ㄤ簡瑙e畠銆佷嬌鐢ㄥ畠鐨勬湅鍙嬭繕涓嶅銆?

銆銆ThreadLocal鏄粈涔?/strong>

銆銆ThreadLocal鏄粈涔堝憿錛熷叾瀹濼hreadLocal騫墮潪鏄竴涓嚎紼嬬殑鏈湴瀹炵幇鐗堟湰錛屽畠騫朵笉鏄竴涓猅hread錛岃屾槸thread local variable錛堢嚎紼嬪眬閮ㄥ彉閲忥級銆備篃璁告妸瀹冨懡鍚嶄負ThreadLocalVar鏇村姞鍚堥傘傜嚎紼嬪眬閮ㄥ彉閲忥紙ThreadLocal錛夊叾瀹炵殑鍔熺敤闈炲父綆鍗曪紝灝辨槸涓烘瘡涓涓嬌鐢ㄨ鍙橀噺鐨勭嚎紼嬮兘鎻愪緵涓涓彉閲忓肩殑鍓湰錛屾槸姣忎竴涓嚎紼嬮兘鍙互鐙珛鍦版敼鍙樿嚜宸辯殑鍓湰錛岃屼笉浼氬拰鍏跺畠綰跨▼鐨勫壇鏈啿紿併備粠綰跨▼鐨勮搴︾湅錛屽氨濂藉儚姣忎竴涓嚎紼嬮兘瀹屽叏鎷ユ湁璇ュ彉閲忋傜嚎紼嬪眬閮ㄥ彉閲忓茍涓嶆槸Java鐨勬柊鍙戞槑錛屽湪鍏跺畠鐨勪竴浜涜璦緙栬瘧鍣ㄥ疄鐜幫紙濡侷BM XL FORTRAN錛変腑錛屽畠鍦ㄨ璦鐨勫眰嬈℃彁渚涗簡鐩存帴鐨勬敮鎸併傚洜涓篔ava涓病鏈夋彁渚涘湪璇█灞傛鐨勭洿鎺ユ敮鎸侊紝鑰屾槸鎻愪緵浜嗕竴涓猅hreadLocal鐨勭被鏉ユ彁渚涙敮鎸侊紝鎵浠ワ紝鍦↗ava涓紪鍐欑嚎紼嬪眬閮ㄥ彉閲忕殑浠g爜鐩稿姣旇緝絎ㄦ嫏錛岃繖涔熻鏄嚎紼嬪眬閮ㄥ彉閲忔病鏈夊湪Java涓緱鍒板緢濂界殑鏅強鐨勪竴涓師鍥犲惂銆?/p>

銆銆ThreadLocal鐨勮璁?/strong>

銆銆棣栧厛鐪嬬湅ThreadLocal鐨勬帴鍙o細

銆銆Object get() ; // 榪斿洖褰撳墠綰跨▼鐨勭嚎紼嬪眬閮ㄥ彉閲忓壇鏈?br />聽聽聽 protected Object initialValue(); // 榪斿洖璇ョ嚎紼嬪眬閮ㄥ彉閲忕殑褰撳墠綰跨▼鐨勫垵濮嬪?br />聽聽聽 void set(Object value); // 璁劇疆褰撳墠綰跨▼鐨勭嚎紼嬪眬閮ㄥ彉閲忓壇鏈殑鍊?/p>

銆銆ThreadLocal鏈?涓柟娉曪紝鍏朵腑鍊煎緱娉ㄦ剰鐨勬槸initialValue()錛岃鏂規(guī)硶鏄竴涓猵rotected鐨勬柟娉曪紝鏄劇劧鏄負浜嗗瓙綾婚噸鍐欒岀壒鎰忓疄鐜扮殑銆傝鏂規(guī)硶榪斿洖褰撳墠綰跨▼鍦ㄨ綰跨▼灞閮ㄥ彉閲忕殑鍒濆鍊鹼紝榪欎釜鏂規(guī)硶鏄竴涓歡榪熻皟鐢ㄦ柟娉曪紝鍦ㄤ竴涓嚎紼嬬1嬈¤皟鐢╣et()鎴栬卻et(Object)鏃舵墠鎵ц錛屽茍涓斾粎鎵ц1嬈°俆hreadLocal涓殑紜疄瀹炵幇鐩存帴榪斿洖涓涓猲ull錛?/p>

protected Object initialValue() { return null; }

銆銆ThreadLocal鏄浣曞仛鍒頒負姣忎竴涓嚎紼嬬淮鎶ゅ彉閲忕殑鍓湰鐨勫憿錛熷叾瀹炲疄鐜扮殑鎬濊礬寰堢畝鍗曪紝鍦═hreadLocal綾諱腑鏈変竴涓狹ap錛岀敤浜庡瓨鍌ㄦ瘡涓涓嚎紼嬬殑鍙橀噺鐨勫壇鏈傛瘮濡備笅闈㈢殑紺轟緥瀹炵幇錛?/p>

public class ThreadLocal
{
銆private Map values = Collections.synchronizedMap(new HashMap());
銆public Object get()
銆{
銆銆Thread curThread = Thread.currentThread();
銆銆Object o = values.get(curThread);
銆銆if (o == null && !values.containsKey(curThread))
銆銆{
銆銆銆o = initialValue();
銆銆銆values.put(curThread, o);
銆銆}
銆銆return o;
銆}

銆public void set(Object newValue)
銆{
銆銆values.put(Thread.currentThread(), newValue);
銆}

銆public Object initialValue()
銆{
銆銆return null;
銆}
}

銆銆褰撶劧錛岃繖騫朵笉鏄竴涓伐涓氬己搴︾殑瀹炵幇錛屼絾JDK涓殑ThreadLocal鐨勫疄鐜版諱綋鎬濊礬涔熺被浼間簬姝ゃ?/p>

銆銆ThreadLocal鐨勪嬌鐢?/strong>

銆銆濡傛灉甯屾湜綰跨▼灞閮ㄥ彉閲忓垵濮嬪寲鍏跺畠鍊鹼紝閭d箞闇瑕佽嚜宸卞疄鐜癟hreadLocal鐨勫瓙綾誨茍閲嶅啓璇ユ柟娉曪紝閫氬父浣跨敤涓涓唴閮ㄥ尶鍚嶇被瀵筎hreadLocal榪涜瀛愮被鍖栵紝姣斿涓嬮潰鐨勪緥瀛愶紝SerialNum綾諱負姣忎竴涓被鍒嗛厤涓涓簭鍙鳳細

public class SerialNum
{
銆// The next serial number to be assigned

銆private static int nextSerialNum = 0;
銆private static ThreadLocal serialNum = new ThreadLocal()
銆{
銆銆protected synchronized Object initialValue()
銆銆{
銆銆銆return new Integer(nextSerialNum++);
銆銆}
銆};

銆public static int get()
銆{
銆銆return ((Integer) (serialNum.get())).intValue();
銆}
}

銆銆SerialNum綾葷殑浣跨敤灝嗛潪甯稿湴綆鍗曪紝鍥犱負get()鏂規(guī)硶鏄痵tatic鐨勶紝鎵浠ュ湪闇瑕佽幏鍙栧綋鍓嶇嚎紼嬬殑搴忓彿鏃訛紝綆鍗曞湴璋冪敤錛?/p>

int serial = SerialNum.get();

銆銆鍗沖彲銆?/p>

銆銆鍦ㄧ嚎紼嬫槸媧誨姩鐨勫茍涓擳hreadLocal瀵硅薄鏄彲璁塊棶鐨勬椂錛岃綰跨▼灝辨寔鏈変竴涓埌璇ョ嚎紼嬪眬閮ㄥ彉閲忓壇鏈殑闅愬惈寮曠敤錛屽綋璇ョ嚎紼嬭繍琛岀粨鏉熷悗錛岃綰跨▼鎷ユ湁鐨勬墍浠ョ嚎紼嬪眬閮ㄥ彉閲忕殑鍓湰閮藉皢澶辨晥錛屽茍絳夊緟鍨冨溇鏀墮泦鍣ㄦ敹闆嗐?/p>

銆銆ThreadLocal涓庡叾瀹冨悓姝ユ満鍒剁殑姣旇緝

銆銆ThreadLocal鍜屽叾瀹冨悓姝ユ満鍒剁浉姣旀湁浠涔堜紭鍔垮憿錛烼hreadLocal鍜屽叾瀹冩墍鏈夌殑鍚屾鏈哄埗閮芥槸涓轟簡瑙e喅澶氱嚎紼嬩腑鐨勫鍚屼竴鍙橀噺鐨勮闂啿紿侊紝鍦ㄦ櫘閫氱殑鍚屾鏈哄埗涓紝鏄氳繃瀵硅薄鍔犻攣鏉ュ疄鐜板涓嚎紼嬪鍚屼竴鍙橀噺鐨勫畨鍏ㄨ闂殑銆傝繖鏃惰鍙橀噺鏄涓嚎紼嬪叡浜殑錛屼嬌鐢ㄨ繖縐嶅悓姝ユ満鍒墮渶瑕佸緢緇嗚嚧鍦板垎鏋愬湪浠涔堟椂鍊欏鍙橀噺榪涜璇誨啓錛屼粈涔堟椂鍊欓渶瑕侀攣瀹氭煇涓璞★紝浠涔堟椂鍊欓噴鏀捐瀵硅薄鐨勯攣絳夌瓑寰堝銆傛墍鏈夎繖浜涢兘鏄洜涓哄涓嚎紼嬪叡浜簡璧勬簮閫犳垚鐨勩俆hreadLocal灝變粠鍙︿竴涓搴︽潵瑙e喅澶氱嚎紼嬬殑騫跺彂璁塊棶錛孴hreadLocal浼氫負姣忎竴涓嚎紼嬬淮鎶や竴涓拰璇ョ嚎紼嬬粦瀹氱殑鍙橀噺鐨勫壇鏈紝浠庤岄殧紱諱簡澶氫釜綰跨▼鐨勬暟鎹紝姣忎竴涓嚎紼嬮兘鎷ユ湁鑷繁鐨勫彉閲忓壇鏈紝浠庤屼篃灝辨病鏈夊繀瑕佸璇ュ彉閲忚繘琛屽悓姝ヤ簡銆俆hreadLocal鎻愪緵浜嗙嚎紼嬪畨鍏ㄧ殑鍏變韓瀵硅薄錛屽湪緙栧啓澶氱嚎紼嬩唬鐮佹椂錛屽彲浠ユ妸涓嶅畨鍏ㄧ殑鏁翠釜鍙橀噺灝佽榪汿hreadLocal錛屾垨鑰呮妸璇ュ璞$殑鐗瑰畾浜庣嚎紼嬬殑鐘舵佸皝瑁呰繘ThreadLocal銆?/p>

銆銆鐢變簬ThreadLocal涓彲浠ユ寔鏈変換浣曠被鍨嬬殑瀵硅薄錛屾墍浠ヤ嬌鐢═hreadLocal get褰撳墠綰跨▼鐨勫兼槸闇瑕佽繘琛屽己鍒剁被鍨嬭漿鎹€備絾闅忕潃鏂扮殑Java鐗堟湰錛?.5錛夊皢妯$増鐨勫紩鍏ワ紝鏂扮殑鏀寔妯$増鍙傛暟鐨凾hreadLocal<T>綾誨皢浠庝腑鍙楃泭銆備篃鍙互鍑忓皯寮哄埗綾誨瀷杞崲錛屽茍灝嗕竴浜涢敊璇鏌ユ彁鍓嶅埌浜嗙紪璇戞湡錛屽皢涓瀹氱▼搴﹀湴綆鍖朤hreadLocal鐨勪嬌鐢ㄣ?/p>

銆銆鎬葷粨

銆銆褰撶劧ThreadLocal騫朵笉鑳芥浛浠e悓姝ユ満鍒訛紝涓よ呴潰鍚戠殑闂棰嗗煙涓嶅悓銆傚悓姝ユ満鍒舵槸涓轟簡鍚屾澶氫釜綰跨▼瀵圭浉鍚岃祫婧愮殑騫跺彂璁塊棶錛屾槸涓轟簡澶氫釜綰跨▼涔嬮棿榪涜閫氫俊鐨勬湁鏁堟柟寮忥紱鑰孴hreadLocal鏄殧紱誨涓嚎紼嬬殑鏁版嵁鍏變韓錛屼粠鏍規(guī)湰涓婂氨涓嶅湪澶氫釜綰跨▼涔嬮棿鍏變韓璧勬簮錛堝彉閲忥級錛岃繖鏍峰綋鐒朵笉闇瑕佸澶氫釜綰跨▼榪涜鍚屾浜嗐傛墍浠ワ紝濡傛灉浣犻渶瑕佽繘琛屽涓嚎紼嬩箣闂磋繘琛岄氫俊錛屽垯浣跨敤鍚屾鏈哄埗錛涘鏋滈渶瑕侀殧紱誨涓嚎紼嬩箣闂寸殑鍏變韓鍐茬獊錛屽彲浠ヤ嬌鐢═hreadLocal錛岃繖灝嗘瀬澶у湴綆鍖栦綘鐨勭▼搴忥紝浣跨▼搴忔洿鍔犳槗璇匯佺畝媧併?/p>



Shooper.Java 2006-05-10 00:02 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 亚洲日本VA午夜在线影院| 亚洲日本国产精华液| 美美女高清毛片视频黄的一免费| 免费福利视频导航| 亚洲国产精品一区二区久久| 全黄大全大色全免费大片| 久久精品国产亚洲Aⅴ香蕉| 又硬又粗又长又爽免费看 | 亚洲高清视频一视频二视频三| 亚洲av无码专区在线电影天堂| 成人无遮挡裸免费视频在线观看| 99久久婷婷国产综合亚洲| 在线观看视频免费国语| 久久亚洲精品成人无码| jizzjizz亚洲| 国色精品va在线观看免费视频 | 中文字幕亚洲精品资源网| 巨波霸乳在线永久免费视频| 亚洲成人福利在线观看| 成人免费777777| 免费国产高清毛不卡片基地| 国产国拍亚洲精品福利 | 久久精品国产亚洲沈樵| 四虎影视成人永久免费观看视频 | 亚洲GV天堂GV无码男同| 亚洲AV无码乱码在线观看性色扶| 久久国产精品免费一区二区三区| 亚洲精品高清视频| 免费鲁丝片一级在线观看| 美女又黄又免费的视频| 亚洲精品成人片在线观看精品字幕| 特级无码毛片免费视频尤物| 亚洲熟妇成人精品一区| 亚洲熟伦熟女新五十路熟妇| 久久久免费的精品| 亚洲日韩久久综合中文字幕| 亚洲一区二区三区在线观看精品中文| 91免费国产精品| 免费无码国产在线观国内自拍中文字幕| 亚洲综合在线另类色区奇米| 青青视频观看免费99|