锘??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美精品一区二区精品网,国产欧美一区二区三区久久,狠狠色香婷婷久久亚洲精品 http://www.shnenglu.com/chenglong7997/category/18971.htmlzh-cnThu, 12 Apr 2012 16:19:42 GMTThu, 12 Apr 2012 16:19:42 GMT60java 鎻愰珮鎬ц兘http://www.shnenglu.com/chenglong7997/articles/171006.htmlSnapeSnapeWed, 11 Apr 2012 20:31:00 GMThttp://www.shnenglu.com/chenglong7997/articles/171006.htmlhttp://www.shnenglu.com/chenglong7997/comments/171006.htmlhttp://www.shnenglu.com/chenglong7997/articles/171006.html#Feedback0http://www.shnenglu.com/chenglong7997/comments/commentRss/171006.htmlhttp://www.shnenglu.com/chenglong7997/services/trackbacks/171006.html鏈榪戠殑鏈哄櫒鍐呭瓨鍙堢垎婊′簡錛岄櫎浜嗘柊澧炴満鍣ㄥ唴瀛樺錛岃繕搴旇濂藉ソreview涓涓嬫垜浠殑浠g爜錛屾湁寰堝浠g爜緙栧啓榪囦簬闅忔剰鍖栵紝榪欎簺涓嶅ソ鐨勪範鎯垨瀵圭▼搴忚璦鐨勪笉浜嗚В鏄簲璇ュソ濂芥墦鍘嬫墦鍘嬩簡銆?/p>

 

涓嬮潰鏄弬鑰冪綉緇滆祫婧愭葷粨鐨勪竴浜涘湪Java緙栫▼涓敖鍙兘瑕佸仛鍒扮殑涓浜涘湴鏂廣?br />
1. 灝介噺鍦ㄥ悎閫傜殑鍦哄悎浣跨敤鍗曚緥
浣跨敤鍗曚緥鍙互鍑忚交鍔犺澆鐨勮礋鎷咃紝緙╃煭鍔犺澆鐨勬椂闂達紝鎻愰珮鍔犺澆鐨勬晥鐜囷紝浣嗗茍涓嶆槸鎵鏈夊湴鏂歸兘閫傜敤浜庡崟渚嬶紝綆鍗曟潵璇達紝鍗曚緥涓昏閫傜敤浜庝互涓嬩笁涓柟闈細
絎竴錛屾帶鍒惰祫婧愮殑浣跨敤錛岄氳繃綰跨▼鍚屾鏉ユ帶鍒惰祫婧愮殑騫跺彂璁塊棶錛?/div>
絎簩錛屾帶鍒跺疄渚嬬殑浜х敓錛屼互杈懼埌鑺傜害璧勬簮鐨勭洰鐨勶紱
絎笁錛屾帶鍒舵暟鎹叡浜紝鍦ㄤ笉寤虹珛鐩存帴鍏寵仈鐨勬潯浠朵笅錛岃澶氫釜涓嶇浉鍏崇殑榪涚▼鎴栫嚎紼嬩箣闂村疄鐜伴氫俊銆?br />
2. 灝介噺閬垮厤闅忔剰浣跨敤闈欐佸彉閲?/strong>
瑕佺煡閬擄紝褰撴煇涓璞¤瀹氫箟涓簊tataic鍙橀噺鎵寮曠敤錛岄偅涔坓c閫氬父鏄笉浼氬洖鏀惰繖涓璞℃墍鍗犳湁鐨勫唴瀛橈紝濡?/div>
Java浠g爜 
  1. public class A{  
  2. static B b = new B();  
  3. }  
 
姝ゆ椂闈欐佸彉閲廱鐨勭敓鍛藉懆鏈熶笌A綾誨悓姝ワ紝濡傛灉A綾諱笉浼氬嵏杞斤紝閭d箞b瀵硅薄浼氬父椹誨唴瀛橈紝鐩村埌紼嬪簭緇堟銆?br />
3. 灝介噺閬垮厤榪囧榪囧父鐨勫垱寤篔ava瀵硅薄
灝介噺閬垮厤鍦ㄧ粡甯歌皟鐢ㄧ殑鏂規硶錛屽驚鐜腑new瀵硅薄錛岀敱浜庣郴緇熶笉浠呰鑺辮垂鏃墮棿鏉ュ垱寤哄璞★紝鑰屼笖榪樿鑺辨椂闂村榪欎簺瀵硅薄榪涜鍨冨溇鍥炴敹鍜屽鐞嗭紝鍦ㄦ垜浠彲浠ユ帶鍒剁殑鑼冨洿鍐咃紝鏈澶ч檺搴︾殑閲嶇敤瀵硅薄錛屾渶濂借兘鐢ㄥ熀鏈殑鏁版嵁綾誨瀷鎴栨暟緇勬潵鏇夸唬瀵硅薄銆?/div>
4. 灝介噺浣跨敤final淇グ絎?/strong>
甯︽湁final淇グ絎︾殑綾繪槸涓嶅彲媧劇敓鐨勩傚湪Java鏍稿績API涓紝鏈夎澶氬簲鐢╢inal鐨勪緥瀛愶紝渚嬪java.lang.String銆備負String綾繪寚瀹歠inal闃叉浜嗕嬌鐢ㄨ呰鐩杔ength()鏂規硶銆傚彟澶栵紝濡傛灉涓涓被鏄痜inal鐨勶紝鍒欒綾繪墍鏈夋柟娉曢兘鏄痜inal鐨勩侸ava緙栬瘧鍣ㄤ細瀵繪壘鏈轟細鍐呰仈錛坕nline錛夋墍鏈夌殑final鏂規硶錛堣繖鍜屽叿浣撶殑緙栬瘧鍣ㄥ疄鐜版湁鍏籌級銆傛涓捐兘澶熶嬌鎬ц兘騫沖潎鎻愰珮50%銆?br />
5. 灝介噺浣跨敤灞閮ㄥ彉閲?/strong>
璋冪敤鏂規硶鏃朵紶閫掔殑鍙傛暟浠ュ強鍦ㄨ皟鐢ㄤ腑鍒涘緩鐨勪復鏃跺彉閲忛兘淇濆瓨鍦ㄦ爤錛圫tack錛変腑錛岄熷害杈冨揩銆傚叾浠栧彉閲忥紝濡傞潤鎬佸彉閲忋佸疄渚嬪彉閲忕瓑錛岄兘鍦ㄥ爢錛圚eap錛変腑鍒涘緩錛岄熷害杈冩參銆?br />
6. 灝介噺澶勭悊濂藉寘瑁呯被鍨嬪拰鍩烘湰綾誨瀷涓よ呯殑浣跨敤鍦烘墍
铏界劧鍖呰綾誨瀷鍜屽熀鏈被鍨嬪湪浣跨敤榪囩▼涓槸鍙互鐩鎬簰杞崲錛屼絾瀹冧滑涓よ呮墍浜х敓鐨勫唴瀛樺尯鍩熸槸瀹屽叏涓嶅悓鐨勶紝鍩烘湰綾誨瀷鏁版嵁浜х敓鍜屽鐞嗛兘鍦ㄦ爤涓鐞嗭紝鍖呰綾誨瀷鏄璞★紝鏄湪鍫嗕腑浜х敓瀹炰緥銆?/div>
鍦ㄩ泦鍚堢被瀵硅薄錛屾湁瀵硅薄鏂歸潰闇瑕佺殑澶勭悊閫傜敤鍖呰綾誨瀷錛屽叾浠栫殑澶勭悊鎻愬′嬌鐢ㄥ熀鏈被鍨嬨?br />
7. 鎱庣敤synchronized錛屽敖閲忓噺灝弒ynchronize鐨勬柟娉?/strong>
閮界煡閬擄紝瀹炵幇鍚屾鏄寰堝ぇ鐨勭郴緇熷紑閿浣滀負浠d環鐨勶紝鐢氳嚦鍙兘閫犳垚姝婚攣錛屾墍浠ュ敖閲忛伩鍏嶆棤璋撶殑鍚屾鎺у埗銆俿ynchronize鏂規硶琚皟鐢ㄦ椂錛岀洿鎺ヤ細鎶婂綋鍓嶅璞¢攣 浜嗭紝鍦ㄦ柟娉曟墽琛屽畬涔嬪墠鍏朵粬綰跨▼鏃犳硶璋冪敤褰撳墠瀵硅薄鐨勫叾浠栨柟娉曘傛墍浠ynchronize鐨勬柟娉曞敖閲忓皬錛屽茍涓斿簲灝介噺浣跨敤鏂規硶鍚屾浠f浛浠g爜鍧楀悓姝ャ?br />
8. 灝介噺浣跨敤StringBuilder鍜孲tringBuffer榪涜瀛楃涓茶繛鎺?/strong>
榪欎釜灝變笉澶氳浜嗐?br />
9. 灝介噺涓嶈浣跨敤finalize鏂規硶
瀹為檯涓婏紝灝嗚祫婧愭竻鐞嗘斁鍦╢inalize鏂規硶涓畬鎴愭槸闈炲父涓嶅ソ鐨勯夋嫨錛岀敱浜嶨C鐨勫伐浣滈噺寰堝ぇ錛屽挨鍏舵槸鍥炴敹Young浠e唴瀛樻椂錛屽ぇ閮戒細寮曡搗搴旂敤紼嬪簭鏆傚仠錛屾墍浠ュ啀閫夋嫨浣跨敤finalize鏂規硶榪涜璧勬簮娓呯悊錛屼細瀵艱嚧GC璐熸媴鏇村ぇ錛岀▼搴忚繍琛屾晥鐜囨洿宸?br />
10. 灝介噺浣跨敤鍩烘湰鏁版嵁綾誨瀷浠f浛瀵硅薄
String str = "hello";
涓婇潰榪欑鏂瑰紡浼氬垱寤轟竴涓?#8220;hello”瀛楃涓詫紝鑰屼笖JVM鐨勫瓧絎︾紦瀛樻睜榪樹細緙撳瓨榪欎釜瀛楃涓詫紱
String str = new String("hello");
姝ゆ椂紼嬪簭闄ゅ垱寤哄瓧絎︿覆澶栵紝str鎵寮曠敤鐨凷tring瀵硅薄搴曞眰榪樺寘鍚竴涓猚har[]鏁扮粍錛岃繖涓猚har[]鏁扮粍渚濇瀛樻斁浜唄,e,l,l,o
11. 鍗曠嚎紼嬪簲灝介噺浣跨敤HashMap銆丄rrayList
HashTable銆乂ector絳変嬌鐢ㄤ簡鍚屾鏈哄埗錛岄檷浣庝簡鎬ц兘銆?br />
12. 灝介噺鍚堢悊鐨勫垱寤篐ashMap
褰撲綘瑕佸垱寤轟竴涓瘮杈冨ぇ鐨刪ashMap鏃訛紝鍏呭垎鍒╃敤鍙︿竴涓瀯閫犲嚱鏁?/div>
public HashMap(int initialCapacity, float loadFactor)
閬垮厤HashMap澶氭榪涜浜唄ash閲嶆瀯,鎵╁鏄竴浠跺緢鑰楄垂鎬ц兘鐨勪簨錛屽湪榛樿涓璱nitialCapacity鍙湁16錛岃宭oadFactor鏄?0.75錛岄渶瑕佸澶х殑瀹歸噺錛屼綘鏈濂借兘鍑嗙‘鐨勪及璁′綘鎵闇瑕佺殑鏈浣沖ぇ灝忥紝鍚屾牱鐨凥ashtable錛孷ectors涔熸槸涓鏍風殑閬撶悊銆?br />
13. 灝介噺鍑忓皯瀵瑰彉閲忕殑閲嶅璁$畻
濡?/div>
for(int i=0;i<list.size();i++)
搴旇鏀逛負
for(int i=0,len=list.size();i<len;i++)
騫朵笖鍦ㄥ驚鐜腑搴旇閬垮厤浣跨敤澶嶆潅鐨勮〃杈懼紡錛屽湪寰幆涓紝寰幆鏉′歡浼氳鍙嶅璁$畻錛屽鏋滀笉浣跨敤澶嶆潅琛ㄨ揪寮忥紝鑰屼嬌寰幆鏉′歡鍊間笉鍙樼殑璇濓紝紼嬪簭灝嗕細榪愯鐨勬洿蹇?nbsp;
14. 灝介噺閬垮厤涓嶅繀瑕佺殑鍒涘緩
濡?/div>
A a = new A();
if(i==1){list.add(a);}
搴旇鏀逛負
if(i==1){
A a = new A();
list.add(a);}
15. 灝介噺鍦╢inally鍧椾腑閲婃斁璧勬簮
紼嬪簭涓嬌鐢ㄥ埌鐨勮祫婧愬簲褰撹閲婃斁錛屼互閬垮厤璧勬簮娉勬紡銆傝繖鏈濂藉湪finally鍧椾腑鍘誨仛銆備笉綆$▼搴忔墽琛岀殑緇撴灉濡備綍錛宖inally鍧楁繪槸浼氭墽琛岀殑錛屼互紜繚璧勬簮鐨勬紜叧闂?nbsp;
16. 灝介噺浣跨敤縐諱綅鏉ヤ唬鏇?a/b'鐨勬搷浣?/strong>
"/"鏄竴涓唬浠峰緢楂樼殑鎿嶄綔錛屼嬌鐢ㄧЩ浣嶇殑鎿嶄綔灝嗕細鏇村揩鍜屾洿鏈夋晥
濡?/div>
int num = a / 4;
int num = a / 8;
搴旇鏀逛負
int num = a >> 2;
int num = a >> 3;
浣嗘敞鎰忕殑鏄嬌鐢ㄧЩ浣嶅簲娣誨姞娉ㄩ噴錛屽洜涓虹Щ浣嶆搷浣滀笉鐩磋錛屾瘮杈冮毦鐞嗚В
17.灝介噺浣跨敤縐諱綅鏉ヤ唬鏇?a*b'鐨勬搷浣?/strong>
鍚屾牱鐨勶紝瀵逛簬'*'鎿嶄綔錛屼嬌鐢ㄧЩ浣嶇殑鎿嶄綔灝嗕細鏇村揩鍜屾洿鏈夋晥
濡?/div>
int num = a * 4;
int num = a * 8;
搴旇鏀逛負
int num = a << 2;
int num = a << 3;
18. 灝介噺紜畾StringBuffer鐨勫閲?/strong>
StringBuffer 鐨勬瀯閫犲櫒浼氬垱寤轟竴涓粯璁ゅぇ灝忥紙閫氬父鏄?6錛夌殑瀛楃鏁扮粍銆傚湪浣跨敤涓紝濡傛灉瓚呭嚭榪欎釜澶у皬錛屽氨浼氶噸鏂板垎閰嶅唴瀛橈紝鍒涘緩涓涓洿澶х殑鏁扮粍錛屽茍灝嗗師鍏堢殑鏁扮粍澶嶅埗榪囨潵錛屽啀 涓㈠純鏃х殑鏁扮粍銆傚湪澶у鏁版儏鍐典笅錛屼綘鍙互鍦ㄥ垱寤?StringBuffer鐨勬椂鍊欐寚瀹氬ぇ灝忥紝榪欐牱灝遍伩鍏嶄簡鍦ㄥ閲忎笉澶熺殑鏃跺欒嚜鍔ㄥ闀匡紝浠ユ彁楂樻ц兘銆?nbsp;
濡傦細StringBuffer buffer = new StringBuffer(1000);  
19. 灝介噺鏃╅噴鏀炬棤鐢ㄥ璞$殑寮曠敤
澶ч儴鍒嗘椂錛屾柟娉曞眬閮ㄥ紩鐢ㄥ彉閲忔墍寮曠敤鐨勫璞?浼氶殢鐫鏂規硶緇撴潫鑰屽彉鎴愬瀮鍦撅紝鍥犳錛屽ぇ閮ㄥ垎鏃跺欑▼搴忔棤闇灝嗗眬閮紝寮曠敤鍙橀噺鏄懼紡璁句負null銆?/div>
渚嬪錛?/div>
Java浠g爜 
  1. Public void test(){  
  2. Object obj = new Object();  
  3. ……  
  4. Obj=null;  
  5. }  
 
涓婇潰榪欎釜灝辨病蹇呰浜嗭紝闅忕潃鏂規硶test()鐨勬墽琛屽畬鎴愶紝紼嬪簭涓璷bj寮曠敤鍙橀噺鐨勪綔鐢ㄥ煙灝辯粨鏉熶簡銆備絾鏄鏋滄槸鏀規垚涓嬮潰錛?/div>
Java浠g爜 
  1. Public void test(){  
  2. Object obj = new Object();  
  3. ……  
  4. Obj=null;  
  5. //鎵ц鑰楁椂錛岃楀唴瀛樻搷浣滐紱鎴栬皟鐢ㄨ楁椂錛岃楀唴瀛樼殑鏂規硶  
  6. ……  
  7. }  
 
榪欐椂鍊欏氨鏈夊繀瑕佸皢obj璧嬪間負null錛屽彲浠ュ敖鏃╃殑閲婃斁瀵筄bject瀵硅薄鐨勫紩鐢ㄣ?br />
20. 灝介噺閬垮厤浣跨敤浜岀淮鏁扮粍
浜岀淮鏁版嵁鍗犵敤鐨勫唴瀛樼┖闂存瘮涓緇存暟緇勫寰楀錛屽ぇ姒?0鍊嶄互涓娿?br />
21. 灝介噺閬垮厤浣跨敤split
闄ら潪鏄繀欏葷殑錛屽惁鍒欏簲璇ラ伩鍏嶄嬌鐢╯plit錛宻plit鐢變簬鏀寔姝e垯琛ㄨ揪寮忥紝鎵浠ユ晥鐜囨瘮杈冧綆錛屽鏋滄槸棰戠箒鐨勫嚑鍗侊紝鍑犵櫨涓囩殑璋冪敤灝嗕細鑰楄垂澶ч噺璧勬簮錛屽鏋滅‘瀹為渶 瑕侀綣佺殑璋冪敤split錛屽彲浠ヨ冭檻浣跨敤apache鐨凷tringUtils.split(string,char)錛岄綣乻plit鐨勫彲浠ョ紦瀛樼粨鏋溿?br />
22. ArrayList & LinkedList
涓 涓槸綰挎ц〃錛屼竴涓槸閾捐〃錛屼竴鍙ヨ瘽錛岄殢鏈烘煡璇㈠敖閲忎嬌鐢ˋrrayList錛孉rrayList浼樹簬LinkedList錛孡inkedList榪樿縐誨姩鎸?閽堬紝娣誨姞鍒犻櫎鐨勬搷浣淟inkedList浼樹簬ArrayList錛孉rrayList榪樿縐誨姩鏁版嵁錛屼笉榪囪繖鏄悊璁烘у垎鏋愶紝浜嬪疄鏈繀濡傛錛岄噸瑕佺殑鏄悊瑙eソ2 鑰呭緱鏁版嵁緇撴瀯錛屽鐥囦笅鑽?br />
23. 灝介噺浣跨敤System.arraycopy ()浠f浛閫氳繃鏉ュ驚鐜鍒舵暟緇?/strong>
System.arraycopy() 瑕佹瘮閫氳繃寰幆鏉ュ鍒舵暟緇勫揩鐨勫 
24. 灝介噺緙撳瓨緇忓父浣跨敤鐨勫璞?/strong>
灝藉彲鑳藉皢緇忓父浣跨敤鐨勫璞¤繘琛岀紦瀛橈紝鍙互浣跨敤鏁扮粍錛屾垨HashMap鐨勫鍣ㄦ潵榪涜緙撳瓨錛屼絾榪欑鏂瑰紡鍙兘瀵艱嚧緋葷粺鍗犵敤榪囧鐨勭紦瀛橈紝鎬ц兘涓嬮檷錛屾帹鑽愬彲浠ヤ嬌鐢ㄤ竴浜涚涓夋柟鐨勫紑婧愬伐鍏鳳紝濡侲hCache錛孫scache榪涜緙撳瓨錛屼粬浠熀鏈兘瀹炵幇浜咶IFO/FLU絳夌紦瀛樼畻娉曘?br />
25. 灝介噺閬垮厤闈炲父澶х殑鍐呭瓨鍒嗛厤
鏈夋椂鍊欓棶棰樹笉鏄敱褰撴椂鐨勫爢鐘舵侀犳垚鐨勶紝鑰屾槸鍥犱負鍒嗛厤澶辮觸閫犳垚鐨勩傚垎閰嶇殑鍐呭瓨鍧楅兘蹇呴』鏄繛緇殑錛岃岄殢鐫鍫嗚秺鏉ヨ秺婊★紝鎵懼埌杈冨ぇ鐨勮繛緇潡瓚婃潵瓚婂洶闅俱?br />
26. 鎱庣敤寮傚父
褰撳垱寤轟竴涓紓甯告椂錛岄渶瑕佹敹闆嗕竴涓爤璺熻釜(stack track)錛岃繖涓爤璺熻釜鐢ㄤ簬鎻忚堪寮傚父鏄湪浣曞鍒涘緩鐨勩傛瀯寤鴻繖浜涙爤璺熻釜鏃墮渶瑕佷負榪愯鏃舵爤鍋氫竴浠藉揩鐓э紝姝f槸榪欎竴閮ㄥ垎寮閿寰堝ぇ銆傚綋闇瑕佸垱寤轟竴涓?Exception 鏃訛紝JVM 涓嶅緱涓嶈錛氬厛鍒姩錛屾垜鎯沖氨鎮ㄧ幇鍦ㄧ殑鏍峰瓙瀛樹竴浠藉揩鐓э紝鎵浠ユ殏鏃跺仠姝㈠叆鏍堝拰鍑烘爤鎿嶄綔銆傛爤璺熻釜涓嶅彧鍖呭惈榪愯鏃舵爤涓殑涓涓や釜鍏冪礌錛岃屾槸鍖呭惈榪欎釜鏍堜腑鐨勬瘡涓涓厓绱犮?/div>
濡?鏋滄偍鍒涘緩涓涓?Exception 錛屽氨寰椾粯鍑轟唬浠楓傚ソ鍦ㄦ崟鑾峰紓甯稿紑閿涓嶅ぇ錛屽洜姝ゅ彲浠ヤ嬌鐢?try-catch 灝嗘牳蹇冨唴瀹瑰寘璧鋒潵銆備粠鎶鏈笂璁詫紝鎮ㄧ敋鑷沖彲浠ラ殢鎰忓湴鎶涘嚭寮傚父錛岃屼笉鐢ㄨ姳璐瑰緢澶х殑浠d環銆傛嫑鑷存ц兘鎹熷け鐨勫茍涓嶆槸 throw 鎿嶄綔——灝界鍦ㄦ病鏈夐鍏堝垱寤哄紓甯哥殑鎯呭喌涓嬪氨鎶涘嚭寮傚父鏄湁鐐逛笉瀵誨父銆傜湡姝h鑺變唬浠風殑鏄垱寤哄紓甯搞傚垢榪愮殑鏄紝濂界殑緙栫▼涔犳儻宸叉暀浼氭垜浠紝涓嶅簲璇ヤ笉綆′笁涓冧簩鍗佷竴灝?鎶涘嚭寮傚父銆傚紓甯告槸涓哄紓甯哥殑鎯呭喌鑰岃璁$殑錛屼嬌鐢ㄦ椂涔熷簲璇ョ墷璁拌繖涓鍘熷垯銆?/div>

Snape 2012-04-12 04:31 鍙戣〃璇勮
]]>java涓璫lone錛堬級http://www.shnenglu.com/chenglong7997/articles/170906.htmlSnapeSnapeWed, 11 Apr 2012 06:08:00 GMThttp://www.shnenglu.com/chenglong7997/articles/170906.htmlhttp://www.shnenglu.com/chenglong7997/comments/170906.htmlhttp://www.shnenglu.com/chenglong7997/articles/170906.html#Feedback0http://www.shnenglu.com/chenglong7997/comments/commentRss/170906.htmlhttp://www.shnenglu.com/chenglong7997/services/trackbacks/170906.html 鐩綍 

棰勫鐭ヨ瘑 
涓轟粈涔堣clone 
Object鐨刢lone浠ュ強涓轟粈涔堝姝ゅ疄鐜?nbsp;
濡備綍clone 
瀵筩lone鐨勬佸害 
鍏朵粬鐨勯夋嫨 
鍜孲erializable鐨勬瘮杈?nbsp;
鎬ц兘 

棰勫鐭ヨ瘑 

涓轟簡鐞嗚Вjava鐨刢lone錛屾湁蹇呰鍏堟俯涔犱互涓嬬殑鐭ヨ瘑銆?nbsp;
java鐨勭被鍨嬶紝java鐨勭被鍨嬪垎涓轟袱澶х被錛屼竴綾諱負primitive錛屽int錛屽彟涓綾諱負寮曠敤綾誨瀷,濡係tring,Object絳夌瓑銆?nbsp;
java寮曠敤綾誨瀷鐨勫瓨鍌紝java鐨勫紩鐢ㄧ被鍨嬮兘鏄瓨鍌ㄥ湪鍫嗕笂鐨?/span>
public class B { int a; String b; public B(int a, String b) { super(); this.a = a; this.b = b; } }
瀵硅繖鏍蜂竴涓紩鐢ㄧ被鍨嬬殑瀹炰緥錛屾垜浠彲浠ユ帹嫻嬶紝鍦ㄥ爢涓婂畠鐨勫唴瀛樺瓨鍌ㄥ艦寮忥紙闄ゅ幓鎸囧悜class鐨勫紩鐢紝閿佺殑綆$悊絳夌瓑鍐呭姟浜嬪姟鎵鍗犲唴瀛橈級錛屽簲璇ユ湁涓涓猧nt鍊艱〃紺篴,浠ュ強涓涓紩鐢紝璇ュ紩鐢ㄦ寚鍚慴鍦ㄥ爢涓婄殑瀛樺偍絀洪棿銆?nbsp;
 

涓轟粈涔堣clone 

鎭╋紝鍥犱負闇瑕併傚簾璇濄?nbsp;
鏈夊悕鐨凣oF璁捐妯″紡閲屾湁涓涓ā寮忎負鍘熷瀷妯″紡錛岀敤鍘熷瀷瀹炰緥鎸囧畾鍒涘緩瀵硅薄鐨勭綾?騫朵笖閫氳繃鎷瘋礉榪欎簺鍘熷瀷鍒涘緩鏂扮殑瀵硅薄. 
綆鍗曠殑璇村氨鏄痗lone涓涓璞″疄渚嬨備嬌寰梒lone鍑烘潵鐨刢opy鍜屽師鏈夌殑瀵硅薄涓妯′竴鏍楓?nbsp;

鎻掍竴涓畝鍗曚嬌鐢╟lone鐨勪緥瀛愶紝濡傛灉涓涓璞″唴閮ㄦ湁鍙彉瀵硅薄瀹炰緥鐨勮瘽錛宲ublic API涓嶅簲璇ョ洿鎺ヨ繑鍥炶瀵硅薄鐨勫紩鐢紝浠ラ槻璋冪敤鏂圭殑code鏀瑰彉璇ュ璞$殑鍐呴儴鐘舵併傝繖涓椂鍊欏彲浠ヨ繑鍥炶瀵硅薄鐨刢lone銆?nbsp;

闂鏉ヤ簡錛屼粈涔堝彨涓妯′竴鏍楓?nbsp;
涓鑸潵璇達紝鏈?nbsp;
x.clone() != x 
x.clone().getClass() == x.getClass() 
x.clone().equals(x) 
浣嗘槸榪欎簺閮戒笉鏄己鍒剁殑銆?nbsp;
鎴戜滑闇瑕佷粈涔堟牱鐨刢lone灝辨悶鍑轟粈涔堟牱鐨刢lone濂戒簡銆?nbsp;
涓鑸岃█錛屾垜浠鐨刢lone搴旇鏄繖鏍風殑銆俢opy鍜屽師鍨嬬殑鍐呭涓鏍鳳紝浣嗘槸鍙堟槸褰兼闅旂鐨勩傚嵆鍦╟lone涔嬪悗錛屾敼鍙樺叾涓竴涓笉褰卞搷鍙﹀涓涓?nbsp;


Object鐨刢lone浠ュ強涓轟粈涔堝姝ゅ疄鐜?/strong> 

Object鐨刢lone鐨勮涓烘槸鏈綆鍗曠殑銆備互鍫嗕笂鐨勫唴瀛樺瓨鍌ㄨВ閲婄殑璇濓紙涓嶈鍐呭姟鍐呭瓨錛夛紝瀵逛竴涓璞鐨刢lone灝辨槸鍦ㄥ爢涓婂垎閰嶄竴涓拰a鍦ㄥ爢涓婃墍鍗犲瓨鍌ㄧ┖闂翠竴鏍峰ぇ鐨勪竴鍧楀湴鏂癸紝鐒跺悗鎶奱鐨勫爢涓婂唴瀛樼殑鍐呭澶嶅埗鍒拌繖涓柊鍒嗛厤鐨勫唴瀛樼┖闂翠笂銆?nbsp;
鐪嬩緥瀛愩?nbsp;
class User { 	String name; 	int age; } class Account implements Cloneable { 	User user; 	long balance; 	@Override 	public Object clone() throws CloneNotSupportedException { 		return super.clone(); 	} }


		// user. 		User user = new User(); 		user.name = "user"; 		user.age = 20; 		// account. 		Account account = new Account(); 		account.user = user; 		account.balance = 10000; 		// copy. 		Account copy = (Account) account.clone(); 		// balance鍥犱負鏄痯rimitive錛屾墍浠opy鍜屽師鍨嬫槸鐩哥瓑涓旂嫭绔嬬殑銆?		Assert.assertEquals(copy.balance, account.balance); 		copy.balance = 20000; 		// 鏀瑰彉copy涓嶅獎鍝嶅師鍨嬨?		Assert.assertTrue(copy.balance != account.balance); 		// user鍥犱負鏄紩鐢ㄧ被鍨嬶紝鎵浠opy鍜屽師鍨嬬殑寮曠敤鏄悓涓鐨勩?		Assert.assertTrue(copy.user == account.user); 		copy.user.name = "newName"; 		// 鏀瑰彉鐨勬槸鍚屼竴涓笢瑗褲?		Assert.assertEquals("newName", account.user.name);

 

鎭╋紝榛樿瀹炵幇鏄府浜嗘垜浠竴浜涘繖錛屼絾鏄笉鏄叏閮ㄣ?nbsp;
primitive鐨勭‘鍋氬埌浜嗙浉絳変笖闅旂銆?nbsp;
寮曠敤綾誨瀷浠呬粎鏄鍒朵簡涓涓嬪紩鐢紝copy鍜屽師鍨嬪紩鐢ㄧ殑涓滆タ鏄竴鏍風殑銆?nbsp;
榪欎釜灝辨槸鎵璋撶殑嫻卌opy浜嗐?nbsp;
瑕佸疄鐜版繁copy錛屽嵆澶嶅埗鍘熷瀷涓璞$殑鍐呭瓨copy錛岃屼笉浠呬粎鏄竴涓紩鐢ㄣ傚彧鏈夎嚜宸卞姩鎵嬩簡銆?nbsp;
絳夌瓑錛屾槸涓嶆槸鎵鏈夌殑寮曠敤綾誨瀷閮介渶瑕佹繁copy鍛紵 
涓嶆槸錛?nbsp;
鎴戜滑涔嬫墍浠ヨ娣眂opy錛屾槸鍥犱負榛樿鐨勫疄鐜版彁渚涚殑嫻卌opy涓嶆槸闅旂鐨勶紝鎹㈣█涔嬶紝鏀瑰彉copy鐨勪笢瑗匡紝浼氬獎鍝嶅埌鍘熷瀷鐨勫唴閮ㄣ傛瘮濡備緥瀛愪腑錛屾敼鍙榗opy鐨剈ser鐨刵ame錛屽獎鍝嶄簡鍘熷瀷銆?nbsp;
濡傛灉鎴戜滑瑕乧opy鐨勭被鏄笉鍙彉鐨勫憿錛屽String錛屾病鏈夋柟娉曞彲浠ユ敼鍙樺畠鐨勫唴閮ㄧ姸鎬佸憿銆?nbsp;
class User implements Cloneable { 	String name; 	int age; 	@Override 	public Object clone() throws CloneNotSupportedException { 		return super.clone(); 	} }

		// user. 		User user = new User(); 		user.name = "user"; 		user.age = 20; 		// copy 		User copy = (User) user.clone(); 		// age鍥犱負鏄痯rimitive錛屾墍浠opy鍜屽師鍨嬫槸鐩哥瓑涓旂嫭绔嬬殑銆?		Assert.assertEquals(copy.age, user.age); 		copy.age = 30; 		// 鏀瑰彉copy涓嶅獎鍝嶅師鍨嬨?		Assert.assertTrue(copy.age != user.age); 		// name鍥犱負鏄紩鐢ㄧ被鍨嬶紝鎵浠opy鍜屽師鍨嬬殑寮曠敤鏄悓涓鐨勩?		Assert.assertTrue(copy.name == user.name); 		// String涓轟笉鍙彉綾匯傛病鏈夊姙娉曞彲浠ラ氳繃瀵筩opy.name鐨勫瓧絎︿覆鐨勬搷浣滄敼鍙樿繖涓瓧絎︿覆銆?		// 鏀瑰彉寮曠敤鏂扮殑瀵硅薄涓嶄細褰卞搷鍘熷瀷銆?		copy.name = "newname"; 		Assert.assertEquals("newname", copy.name); 		Assert.assertEquals("user", user.name);
鍙錛?/span>鍦ㄨ冭檻clone鏃訛紝primitive鍜屼笉鍙彉瀵硅薄綾誨瀷鏄彲浠ュ悓絳夊寰呯殑銆?nbsp;

java涓轟粈涔堝姝ゅ疄鐜癱lone鍛紵 
涔熻鏈変互涓嬭冭檻銆?nbsp;
1 鏁堢巼鍜岀畝鍗曟э紝綆鍗曠殑copy涓涓璞″湪鍫嗕笂鐨勭殑鍐呭瓨姣旈亶鍘嗕竴涓璞$綉鐒跺悗鍐呭瓨娣眂opy鏄庢樉鏁堢巼楂樺茍涓旂畝鍗曘?nbsp;
2 涓嶇粰鍒殑綾誨己鍔犳剰涔夈傚鏋淎瀹炵幇浜咰loneable錛屽悓鏃舵湁涓涓紩鐢ㄦ寚鍚態錛屽鏋滅洿鎺ュ鍒跺唴瀛樿繘琛屾繁copy鐨勮瘽錛屾剰鍛崇潃B鍦ㄦ剰涔変笂涔熸槸鏀寔Clone鐨勶紝浣嗘槸榪欎釜鏄湪浣跨敤B鐨凙涓仛鐨勶紝B鐢氳嚦閮戒笉鐭ラ亾銆傜牬鍧忎簡B鍘熸湁鐨勬帴鍙c?nbsp;
3 鏈夊彲鑳界牬鍧忚涔夈傚鏋淎瀹炵幇浜咰loneable錛屽悓鏃舵湁涓涓紩鐢ㄦ寚鍚態錛岃B瀹炵幇涓哄崟渚嬫ā寮忥紝濡傛灉鐩存帴澶嶅埗鍐呭瓨榪涜娣眂opy鐨勮瘽錛岀牬鍧忎簡B鐨勫崟渚嬫ā寮忋?nbsp;
4 鏂逛究涓旀洿鐏墊椿錛屽鏋淎寮曠敤涓涓笉鍙彉瀵硅薄錛屽垯鍐呭瓨deep copy鏄竴縐嶆氮璐廣係hadow copy緇欎簡紼嬪簭鍛樻洿濂界殑鐏墊椿鎬с?nbsp;

濡備綍clone 
clone涓夐儴鏇層?nbsp;
1 澹版槑瀹炵幇Cloneable鎺ュ彛銆?nbsp;
2 璋冪敤super.clone鎷垮埌涓涓璞★紝濡傛灉鐖剁被鐨刢lone瀹炵幇娌℃湁闂鐨勮瘽錛屽湪璇ュ璞$殑鍐呭瓨瀛樺偍涓紝鎵鏈夌埗綾誨畾涔夌殑field閮藉凡緇廲lone濂戒簡錛岃綾諱腑鐨刾rimitive鍜屼笉鍙彉綾誨瀷寮曠敤涔熷厠闅嗗ソ浜嗭紝鍙彉綾誨瀷寮曠敤閮芥槸嫻卌opy銆?nbsp;
3 鎶婃祬copy鐨勫紩鐢ㄦ寚鍚戝師鍨嬪璞℃柊鐨勫厠闅嗕綋銆?nbsp;
緇欎釜渚嬪瓙銆?nbsp;
class User implements Cloneable { 	String name; 	int age; 	@Override 	public User clone() throws CloneNotSupportedException { 		return (User) super.clone(); 	} } class Account implements Cloneable { 	User user; 	long balance; 	@Override 	public Account clone() throws CloneNotSupportedException { 		Account account = null; 		account = (Account) super.clone(); 		if (user != null) { 			account.user = user.clone(); 		} 		return account; 	} }


 

瀵筩lone鐨勬佸害 

clone鍢涳紝鎴戣寰楁槸涓ソ涓滆タ錛屾瘯绔熺郴緇熼粯璁ゅ疄鐜板凡緇忓府鎴戜滑鍋氫簡寰堝浜嬫儏浜嗐?nbsp;
浣嗘槸瀹冧篃鏄湁緙虹偣鐨勩?nbsp;
1 鎵嬪伐緇存姢clone鐨勮皟鐢ㄩ摼銆傝繖涓棶棰樹笉澶э紝紼嬪簭鍛樻湁璐d換鍋氬ソ銆?nbsp;
2 濡傛灉class鐨刦ield鏄釜final鐨勫彲鍙樼被錛屽氨涓嶈浜嗐備笁閮ㄦ洸鐨勭涓夋娌℃湁鍔炴硶鍋氫簡銆?nbsp;

鑰冭檻涓涓被瀵筩lone鐨勬佸害錛屾湁濡備笅鍑犵銆?nbsp;
1 鍏紑鏀寔錛氬ソ鍚э紝鎸夌収clone涓夐儴鏇插疄鐜板惂銆傚墠鎻愭槸鐖剁被鏀寔錛堝叕寮鎴栬呴粯榛橈級銆?nbsp;
2 榛橀粯鏀寔錛氫笉瀹炵幇Cloneable鎺ュ彛錛屼絾鏄湪綾婚噷闈㈡湁姝g‘鐨刾rotected鐨刢lone瀹炵幇錛岃繖鏍鳳紝璇ョ被涓嶆敮鎸乧lone錛屼絾鏄畠鐨勫瓙綾誨鏋滄兂鏀寔鐨勮瘽涔熶笉濡ㄧ銆?nbsp;
3 涓嶆敮鎸侊細濂藉惂錛屼負浜嗘槑紜鐩殑錛屾彁渚涗竴涓姏CloneNotSupportedException 寮傚父鐨刾rotected鐨刢lone瀹炵幇銆?nbsp;
4 鐪嬫儏鍐墊敮鎸侊細璇ョ被鍐呴儴鍙互淇濆瓨鍏朵粬綾葷殑瀹炰緥錛屽鏋滃叾浠栫被鏀寔鍒欒綾繪敮鎸侊紝濡傛灉鍏朵粬綾諱笉鏀寔錛岃綾繪病鏈夊姙娉曪紝鍙湁涓嶆敮鎸併?nbsp;


鍏朵粬鐨勯夋嫨 

鍙互鐢ㄥ師鍨嬫瀯閫犲嚱鏁幫紝鎴栬呴潤鎬乧opy鏂規硶鏉ユ墜宸ュ埗浣滀竴涓璞$殑copy銆?nbsp;
濂藉鏄嵆浣縞lass鐨刦ield涓篺inal錛屼篃涓嶄細褰卞搷璇ユ柟娉曠殑浣跨敤銆備笉濂界殑鍦版柟鏄墍鏈夌殑primitive璧嬪奸兘寰楄嚜宸辯淮鎶ゃ?nbsp;


鍜孲erializable鐨勬瘮杈?/strong> 

浣跨敤Serializable鍚屾牱鍙互鍋氬埌瀵硅薄鐨刢lone銆備絾鏄細 
Cloneable鏈韓灝辨槸涓篶lone璁捐鐨勶紝铏界劧鏈変竴浜涚己鐐癸紝浣嗘槸濡傛灉瀹冨彲浠lone鐨勮瘽鏃犵枒鐢ㄥ畠鏉ュ仛clone姣旇緝鍚堥傘傚鏋滀笉琛岀殑璇濈敤鍘熷瀷鏋勯犲嚱鏁幫紝鎴栬呴潤鎬乧opy鏂規硶涔熷彲浠ャ?nbsp;

Serializable鍒朵綔clone鐨勮瘽錛屾坊鍔犱簡澶鍏跺畠鐨勪笢瑗匡紝澧炲姞浜嗗鏉傛с?nbsp;
1 鎵鏈夌殑鐩稿叧鐨勭被閮藉緱鏀寔Serializable銆傝繖涓浉姣旀敮鎸丆loneable鍙細宸ヤ綔閲忔洿澶?nbsp;
2 Serializable娣誨姞浜嗘洿澶氱殑鎰忎箟錛岄櫎浜嗘彁渚涗竴涓柟娉曠敤Serializable鍒朵綔Clone錛岃綾葷瓑浜庝篃娣誨姞浜嗗叾瀹冪殑public API錛屽鏋滀竴涓被瀹炵幇浜哠erializable錛岀瓑浜庡畠鐨?榪涘埗褰㈠紡灝卞凡緇忔槸鍏禔PI鐨勪竴閮ㄥ垎浜嗭紝涓嶄究浜庤綾諱互鍚庡唴閮ㄧ殑鏀瑰姩銆?nbsp;
3 褰撶被鐢⊿erializable鏉ュ疄鐜癱lone鏃訛紝鐢ㄦ埛濡傛灉淇濆瓨浜嗕竴涓佺増鏈殑瀵硅薄2榪涘埗錛岃綾誨崌綰э紝鐢ㄦ埛鐢ㄦ柊鐗堟湰鐨勭被鍙嶇郴鍒楀寲璇ュ璞★紝鍐嶈皟鐢ㄨ瀵硅薄鐢⊿erializable瀹炵幇鐨刢lone銆傝繖閲屼負浜嗕竴涓猚lone鐨勬柟娉曞張寮曞叆浜嗙被鐗堟湰鍏煎鎬х殑闂銆備笉鍒掔畻銆?nbsp;


鎬ц兘 

涓嶅彲鍚﹁錛孞VM瓚婃潵瓚婂揩浜嗐?nbsp;
浣嗘槸緋葷粺榛樿鐨刵ative瀹炵幇榪樻槸鎸哄揩鐨勩?nbsp;
clone涓涓湁100涓厓绱犵殑int鏁扮粍錛岀敤緋葷粺榛樿鐨刢lone姣旈潤鎬乧opy鏂規硶蹇?鍊嶅乏鍙熾?/span> 

Snape 2012-04-11 14:08 鍙戣〃璇勮
]]>
java instance錛堬級http://www.shnenglu.com/chenglong7997/articles/170905.htmlSnapeSnapeWed, 11 Apr 2012 06:07:00 GMThttp://www.shnenglu.com/chenglong7997/articles/170905.htmlhttp://www.shnenglu.com/chenglong7997/comments/170905.htmlhttp://www.shnenglu.com/chenglong7997/articles/170905.html#Feedback0http://www.shnenglu.com/chenglong7997/comments/commentRss/170905.htmlhttp://www.shnenglu.com/chenglong7997/services/trackbacks/170905.html java 涓殑instanceof 榪愮畻絎︽槸鐢ㄦ潵鍦ㄨ繍琛屾椂鎸囧嚭瀵硅薄鏄惁鏄壒瀹氱被鐨勪竴涓疄渚嬨俰nstanceof閫氳繃榪斿洖涓涓竷灝斿兼潵鎸囧嚭錛岃繖涓璞℃槸鍚︽槸榪欎釜鐗瑰畾綾繪垨鑰呮槸瀹冪殑瀛愮被鐨勪竴涓疄渚嬨?br /> 鐢ㄦ硶錛?br />result = object instanceof class
鍙傛暟錛?br />Result錛氬竷灝旂被鍨嬨?br />Object錛氬繀閫夐」銆備換鎰忓璞¤〃杈懼紡銆?br />Class錛氬繀閫夐」銆備換鎰忓凡瀹氫箟鐨勫璞$被銆?br />璇存槑錛?br />濡傛灉 object 鏄?class 鐨勪竴涓疄渚嬶紝鍒?instanceof 榪愮畻絎﹁繑鍥?true銆傚鏋?object 涓嶆槸鎸囧畾綾葷殑涓涓疄渚嬶紝鎴栬?object 鏄?null錛屽垯榪斿洖 false銆?/p>

渚嬪瓙濡備笅錛?/p>


package com.instanceoftest;

 interface A{}
 class B implements A{
  
 }
 class C extends B {
  
 }
 
 class instanceoftest {
  public static void main(String[] args){
     A a=null;
     B b=null;
     boolean res; 
     
     System.out.println("instanceoftest test case 1: ------------------");
       res = a instanceof A; 
       System.out.println("a instanceof A: " + res);
       
       res = b instanceof B;
       System.out.println("b instanceof B: " + res);
       
     System.out.println("\ninstanceoftest test case 2: ------------------");   
     a=new B();
     b=new B();
     
     res = a instanceof A; 
     System.out.println("a instanceof A: " + res);
     
     res = a instanceof B;
     System.out.println("a instanceof B: " + res);

     res = b instanceof A;
     System.out.println("b instanceof A: " + res);
     
     res = b instanceof B;
     System.out.println("b instanceof B: " + res);
    
     System.out.println("\ninstanceoftest test case 3: ------------------");
     B b2=(C)new C();
     
     res = b2 instanceof A;
     System.out.println("b2 instanceof A: " + res);
     
     res = b2 instanceof B;
     System.out.println("b2 instanceof B: " + res);
     
     res = b2 instanceof C;
     System.out.println("b2 instanceof C: " + res);
  }
}


/*
result:


instanceoftest test case 1: ------------------
a instanceof A: false
b instanceof B: false

instanceoftest test case 2: ------------------
a instanceof A: true
a instanceof B: true
b instanceof A: true
b instanceof B: true

instanceoftest test case 3: ------------------
b2 instanceof A: true
b2 instanceof B: true
b2 instanceof C: true



Snape 2012-04-11 14:07 鍙戣〃璇勮
]]>
嫻呮瀽JAVA涔嬪瀮鍦懼洖鏀舵満鍒?/title><link>http://www.shnenglu.com/chenglong7997/articles/170904.html</link><dc:creator>Snape</dc:creator><author>Snape</author><pubDate>Wed, 11 Apr 2012 06:06:00 GMT</pubDate><guid>http://www.shnenglu.com/chenglong7997/articles/170904.html</guid><wfw:comment>http://www.shnenglu.com/chenglong7997/comments/170904.html</wfw:comment><comments>http://www.shnenglu.com/chenglong7997/articles/170904.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/chenglong7997/comments/commentRss/170904.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/chenglong7997/services/trackbacks/170904.html</trackback:ping><description><![CDATA[     鎽樿:   瀵逛簬JAVA緙栫▼鍜屽緢澶氱被浼糃銆丆++璇█鏈変竴涓法澶у尯鍒氨鏄唴瀛樹笉闇瑕佽嚜宸卞幓free鎴栬卍elete錛岃屾槸鐢盝VM鍨冨溇鍥炴敹鏈哄埗鍘誨畬鎴愮殑銆傚浜庤繖涓繃紼嬪緢澶氫漢涓鐩存瘮杈冭尗鐒舵垨鑰呰寰楀緢鏅鴻兘錛屼嬌寰楀湪鍐欑▼搴忕殑榪囩▼涓嶅お鑰冭檻瀹冪殑鎰熷彈錛屽叾瀹炵煡閬撲竴浜涘唴鍦ㄧ殑鍘熺悊錛屽府鍔╂垜浠紪鍐欐洿鍔犱紭縐鐨勪唬鐮佹槸闈炲父鏈夊繀瑕佺殑銆傛湰鏂囦粠浠ヤ笅鍑犱釜鏂歸潰榪涜闃愯堪錛?銆乫inalize()鏂規硶2銆丼ystem.gc()鏂規硶鍙婁竴浜涘疄鐢ㄦ柟娉?銆?..  <a href='http://www.shnenglu.com/chenglong7997/articles/170904.html'>闃呰鍏ㄦ枃</a><img src ="http://www.shnenglu.com/chenglong7997/aggbug/170904.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/chenglong7997/" target="_blank">Snape</a> 2012-04-11 14:06 <a href="http://www.shnenglu.com/chenglong7997/articles/170904.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Java紼嬪簭鏈瀹規槗鐘殑21縐嶉敊璇?/title><link>http://www.shnenglu.com/chenglong7997/articles/170903.html</link><dc:creator>Snape</dc:creator><author>Snape</author><pubDate>Wed, 11 Apr 2012 06:05:00 GMT</pubDate><guid>http://www.shnenglu.com/chenglong7997/articles/170903.html</guid><wfw:comment>http://www.shnenglu.com/chenglong7997/comments/170903.html</wfw:comment><comments>http://www.shnenglu.com/chenglong7997/articles/170903.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/chenglong7997/comments/commentRss/170903.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/chenglong7997/services/trackbacks/170903.html</trackback:ping><description><![CDATA[<p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">   1.Duplicated <a title="Powered by Text-Enhance" id="_GPLITA_0" in_rurl="http://www.textsrv.com/click?v=VVM6MTc5MDM6MzM2OmNvZGU6MmNiNDRlYmZmYmExZTcxODk1YTkwYjYyZDY2ZmYyYjY6ei0xMDQ3LTE0MjEyOnd3dy5qYXZhM3ouY29t" style="color: #0066ff; ">Code</a></p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆浠g爜閲嶅鍑犱箮鏄渶甯歌鐨勫紓鍛充簡銆備粬涔熸槸Refactoring鐨勪富瑕佺洰鏍囦箣涓銆備唬鐮侀噸澶嶅線寰鏉ヨ嚜浜巆opy-and-paste鐨勭紪紼嬮鏍箋備笌浠栫浉瀵瑰簲OAOO鏄竴涓ソ緋葷粺鐨勯噸瑕佹爣蹇椼?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆2.Long method</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆瀹冩槸浼犵粺緇撴瀯鍖栫殑“閬楁瘨”銆備竴涓柟娉曞簲褰撳叿鏈夎嚜鎴戠嫭绔嬬殑鎰忓浘錛屼笉瑕佹妸鍑犱釜鎰忓浘鏀懼湪涓璧楓?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆3.Large Class</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆澶х被灝辨槸浣犳妸澶鐨勮矗浠諱氦緇欎簡涓涓被銆傝繖閲岀殑瑙勫垯鏄疧ne Class One Responsibility.</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆4.Divergent Change</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆涓涓被閲岄潰鐨勫唴瀹瑰彉鍖栫巼涓嶅悓銆傛煇浜涚姸鎬佷竴涓皬鏃跺彉涓嬈★紝鏌愪簺鍒欏嚑涓湀涓騫存墠鍙樹竴嬈★紱鏌愪簺鐘舵佸洜涓鴻繖鏂歸潰鐨勫師鍥犲彂鐢熷彉鍖栵紝鑰屽彟涓浜涘垯鍥犱負鍏朵粬鏂歸潰鐨勫師鍥犲彉涓嬈°傞潰鍚戝璞$殑鎶借薄灝辨槸鎶婄浉瀵逛笉鍙樼殑鍜岀浉瀵瑰彉鍖栫浉闅旂銆傛妸闂鍙樺寲鐨勪竴鏂歸潰鍜屽彟涓鏂歸潰鐩擱殧紱匯傝繖浣垮緱榪欎簺鐩稿涓嶅彉鐨勫彲浠ラ噸鐢ㄣ傞棶棰樺彉鍖栫殑姣忎釜鏂歸潰閮藉彲浠ュ崟鐙噸鐢ㄣ傝繖縐嶇浉寮傚彉鍖栫殑鍏卞瓨浣垮緱閲嶇敤闈炲父鍥伴毦銆?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆5.Shotgun Surgery</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆榪欐濂藉拰涓婇潰鐩稿弽銆傚緋葷粺涓涓湴鏂圭殑鏀瑰彉娑夊強鍒板叾浠栬澶氬湴鏂圭殑鐩稿叧鏀瑰彉銆傝繖浜涘彉鍖栫巼鍜屽彉鍖栧唴瀹圭浉浼肩殑鐘舵佸拰琛屼負閫氬父搴斿綋鏀懼湪鍚屼竴涓被涓?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆6.Feature Envy</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆瀵硅薄鐨勭洰鐨勫氨鏄皝瑁呯姸鎬佷互鍙婁笌榪欎簺鐘舵佺揣瀵嗙浉鍏崇殑琛屼負銆傚鏋滀竴涓被鐨勬柟娉曢綣佺敤get 鏂規硶瀛樺彇鍏朵粬綾葷殑鐘舵佽繘琛岃綆楋紝閭d箞浣犺鑰冭檻鎶婅涓虹Щ鍒版秹鍙婄姸鎬佹暟鐩渶澶氱殑閭d釜綾匯?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆7.Data Clumps</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆鏌愪簺鏁版嵁閫氬父鍍忓瀛愪竴鏍鋒垚緹ょ帺鑰嶏細涓璧峰嚭鐜板湪寰堝綾葷殑鎴愬憳鍙橀噺涓紝涓璧峰嚭鐜板湪璁稿鏂規硶鐨勫弬鏁頒腑錛岃繖浜涙暟鎹垨璁稿簲璇ヨ嚜宸辯嫭绔嬪艦鎴愬璞°?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆8.Primitive Obsession</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆闈㈠悜瀵硅薄鐨勬柊鎵嬮氬父涔犳儻浣跨敤鍑犱釜鍘熷綾誨瀷鐨勬暟鎹潵琛ㄧず涓涓蹇點傝濡傚浜庤寖鍥達紝浠栦滑浼氫嬌鐢ㄤ袱涓暟瀛椼傚浜嶮oney錛屼粬浠細鐢ㄤ竴涓誕鐐規暟鏉ヨ〃紺恒傚洜涓轟綘娌℃湁浣跨敤瀵硅薄鏉ヨ〃杈鵑棶棰樹腑瀛樺湪鐨勬蹇碉紝榪欎嬌寰椾唬鐮佸彉鐨勯毦浠ョ悊瑙o紝瑙e喅闂鐨勯毦搴﹀ぇ澶у鍔犮傚ソ鐨勪範鎯槸鎵╁厖璇█鎵鑳芥彁渚涘師濮嬬被鍨嬶紝鐢ㄥ皬瀵硅薄鏉ヨ〃紺鴻寖鍥淬侀噾棰濄佽漿鍖栫巼銆侀偖鏀跨紪鐮佺瓑絳夈?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆9.Switch Statement</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆鍩轟簬甯擱噺鐨勫紑鍏寵鍙ユ槸OO 鐨勫ぇ鏁岋紝浣犲簲褰撴妸浠栧彉涓哄瓙綾匯乻tate鎴杝trategy.</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆10. Parallel Inheritance Hierarchies</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆騫惰鐨勭戶鎵垮眰嬈℃槸shotgun surgery鐨勭壒孌婃儏鍐點傚洜涓哄綋浣犳敼鍙樹竴涓眰嬈′腑鐨勬煇涓涓被鏃訛紝浣犲繀欏誨悓鏃舵敼鍙樺彟澶栦竴涓眰嬈$殑騫惰瀛愮被銆?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆11. Lazy Class</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆涓涓共媧諱笉澶氱殑綾匯傜被鐨勭淮鎶ら渶瑕侀澶栫殑寮閿錛屽鏋滀竴涓被鎵挎媴浜嗗お灝戠殑璐d換錛屽簲褰撴秷闄ゅ畠銆?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆12. Speculative Generality</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆涓涓被瀹炵幇浜嗕粠鏈敤鍒扮殑鍔熻兘鍜岄氱敤鎬с傞氬父榪欐牱鐨勭被鎴栨柟娉曞敮涓鐨勭敤鎴鋒槸testcase.涓嶈鐘硅鮑錛屽垹闄ゅ畠銆?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆13. Temporary Field</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆涓涓璞$殑灞炴у彲鑳藉彧鍦ㄦ煇浜涙儏鍐典笅鎵嶆湁鎰忎箟銆傝繖鏍風殑浠g爜灝嗛毦浠ョ悊瑙c備笓闂ㄥ緩绔嬩竴涓璞℃潵鎸佹湁榪欐牱鐨勫鍎垮睘鎬э紝鎶婂彧鍜屼粬鐩稿叧鐨勮涓虹Щ鍒拌綾匯傛渶甯歌鐨勬槸涓涓壒瀹氱殑綆楁硶闇瑕佹煇浜涘彧鏈夎綆楁硶鎵嶆湁鐢ㄧ殑鍙橀噺銆?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆14. Message Chain</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆娑堟伅閾懼彂鐢熶簬褰撲竴涓鎴峰悜涓涓璞¤姹傚彟涓涓璞★紝鐒跺悗瀹㈡埛鍙堝悜榪欏彟涓瀵硅薄瑕佹眰鍙︿竴涓璞★紝鍐嶅悜榪欏彟涓涓璞¤姹傚彟涓涓璞★紝濡傛濡傛銆傝繖鏃訛紝浣犻渶瑕侀殣钘忓垎媧俱?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆15. Middle Man</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆瀵硅薄鐨勫熀鏈壒鎬т箣涓灝辨槸灝佽錛岃屼綘緇忓父浼氶氳繃鍒嗘淳鍘誨疄鐜板皝瑁呫備絾鏄繖涓姝ヤ笉鑳借蛋寰楀お榪滐紝濡傛灉浣犲彂鐜頒竴涓被鎺ュ彛鐨勪竴澶у崐鏂規硶閮藉湪鍋氬垎媧撅紝浣犲彲鑳介渶瑕佺Щ鍘昏繖涓腑闂翠漢銆?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆16. Inappropriate Intimacy</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆鏌愪簺綾葷浉浜掍箣闂村お浜插瘑錛屽畠浠姳璐逛簡澶鐨勬椂闂村幓鐮栫爺鍒漢鐨勭鏈夐儴鍒嗐傚浜虹被鑰岃█錛屾垜浠篃璁鎬笉搴旇澶亣姝g粡錛屼絾鎴戜滑搴斿綋璁╄嚜宸辯殑綾諱弗鏍奸伒瀹堢嬈蹭富涔夈?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆17. Alternative Classes with Different Interfaces</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆鍋氱浉鍚屼簨鎯呯殑鏂規硶鏈変笉鍚岀殑鍑芥暟signature錛屼竴鑷存妸瀹冧滑寰綾誨眰嬈′笂縐伙紝鐩磋嚦鍗忚涓鑷淬?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆18. Incomplete Library Class</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆瑕佸緩绔嬩竴涓ソ鐨勭被搴撻潪甯稿洶闅俱傛垜浠ぇ閲忕殑紼嬪簭宸ヤ綔閮藉熀浜庣被搴撳疄鐜般傜劧鑰岋紝濡傛騫挎硾鑰屽張鐩稿紓鐨勭洰鏍囧搴撴瀯寤鴻呮彁鍑轟簡鑻涘埢鐨勮姹傘傚簱鏋勫緩鑰呬篃涓嶆槸涓囪兘鐨勩傛湁鏃跺欐垜浠細鍙戠幇搴撶被鏃犳硶瀹炵幇鎴戜滑闇瑕佺殑鍔熻兘銆傝岀洿鎺ュ搴撶被鐨勪慨鏀規湁闈炲父鍥伴毦銆傝繖鏃跺欏氨闇瑕佺敤鍚勭鎵嬫榪涜Refactoring.</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆19. Data Class</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆瀵硅薄鍖呮嫭鐘舵佸拰琛屼負銆傚鏋滀竴涓被鍙湁鐘舵佹病鏈夎涓猴紝閭d箞鑲畾鏈変粈涔堝湴鏂瑰嚭闂浜嗐?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆20. Refused Bequest</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆瓚呯被浼犱笅鏉ュ緢澶氳涓哄拰鐘舵侊紝鑰屽瓙綾誨彧鏄敤浜嗗叾涓殑寰堝皬涓閮ㄥ垎銆傝繖閫氬父鎰忓懗鐫浣犵殑綾誨眰嬈℃湁闂銆?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆21. Comments</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">銆銆緇忓父瑙夊緱瑕佸啓寰堝娉ㄩ噴琛ㄧず浣犵殑浠g爜闅句互鐞嗚В銆傚鏋滆繖縐嶆劅瑙夊お澶氾紝琛ㄧず浣犻渶瑕丷efactoring.</p><img src ="http://www.shnenglu.com/chenglong7997/aggbug/170903.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/chenglong7997/" target="_blank">Snape</a> 2012-04-11 14:05 <a href="http://www.shnenglu.com/chenglong7997/articles/170903.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>java鍚姩鏂瑰紡http://www.shnenglu.com/chenglong7997/articles/170902.htmlSnapeSnapeWed, 11 Apr 2012 06:01:00 GMThttp://www.shnenglu.com/chenglong7997/articles/170902.htmlhttp://www.shnenglu.com/chenglong7997/comments/170902.htmlhttp://www.shnenglu.com/chenglong7997/articles/170902.html#Feedback0http://www.shnenglu.com/chenglong7997/comments/commentRss/170902.htmlhttp://www.shnenglu.com/chenglong7997/services/trackbacks/170902.html
  • 浣跨敤 -classpath 閫夐」:
    java -classpath C:\hello\build\classes test.HelloWorld
  • 浣跨敤 -cp 閫夐」,  -classpath 鐨勭畝鍐?
    java -cp C:\hello\build\classes test.HelloWorld
  • 浣跨敤 -Djava.class.path 璁劇疆緋葷粺灞炴?
    java -Djava.class.path=C:\hello\build\classes test.HelloWorld
  • 浣跨敤 CLASSPATH 璁劇疆鐜鍙橀噺:
    set CLASSPATH=C:\hello\build\classes;
    java test.HelloWorld
  • 浣跨敤褰撳墠鐩綍涓哄惎鍔ㄧ洰褰?
    cd C:\hello\build\classes;
    java test.HelloWorld
  • 鎵撳寘鎵鏈夌被榪涘叆涓涓猨ar鍖呬腑錛屽茍璁劇疆瀵瑰簲鐨?code> META-INF/MANIFEST.MF 鏂囦歡
    鏂囦歡鍐呭錛?span style="color: #ff0000; ">Main-Class: test.HelloWorld 
    java -jar hello-world.jar
    娉ㄦ剰錛氬綋浣跨敤-jar閫夐」鏃訛紝-classpath -cp榪欎袱涓夐」灝嗚蹇界暐錛?/li>
  • 鍐橞ash鏂囦歡榪涜鍔犺澆
  • 濡傛灉浣犱嬌鐢ㄧ殑鏄疛DK6錛屽姞杞界被璺緞榪樻敮鎸?閫氶厤絎﹀姞杞芥墍鏈塲ar鏂囦歡錛歫ava -cp ./lib/* test.HelloWorld


  • Snape 2012-04-11 14:01 鍙戣〃璇勮
    ]]>
    java鍚姩鏂瑰紡http://www.shnenglu.com/chenglong7997/articles/170901.htmlSnapeSnapeWed, 11 Apr 2012 06:01:00 GMThttp://www.shnenglu.com/chenglong7997/articles/170901.htmlhttp://www.shnenglu.com/chenglong7997/comments/170901.htmlhttp://www.shnenglu.com/chenglong7997/articles/170901.html#Feedback0http://www.shnenglu.com/chenglong7997/comments/commentRss/170901.htmlhttp://www.shnenglu.com/chenglong7997/services/trackbacks/170901.html
  • 浣跨敤 -classpath 閫夐」:
    java -classpath C:\hello\build\classes test.HelloWorld
  • 浣跨敤 -cp 閫夐」,  -classpath 鐨勭畝鍐?
    java -cp C:\hello\build\classes test.HelloWorld
  • 浣跨敤 -Djava.class.path 璁劇疆緋葷粺灞炴?
    java -Djava.class.path=C:\hello\build\classes test.HelloWorld
  • 浣跨敤 CLASSPATH 璁劇疆鐜鍙橀噺:
    set CLASSPATH=C:\hello\build\classes;
    java test.HelloWorld
  • 浣跨敤褰撳墠鐩綍涓哄惎鍔ㄧ洰褰?
    cd C:\hello\build\classes;
    java test.HelloWorld
  • 鎵撳寘鎵鏈夌被榪涘叆涓涓猨ar鍖呬腑錛屽茍璁劇疆瀵瑰簲鐨?code> META-INF/MANIFEST.MF 鏂囦歡
    鏂囦歡鍐呭錛?span style="color: #ff0000; ">Main-Class: test.HelloWorld 
    java -jar hello-world.jar
    娉ㄦ剰錛氬綋浣跨敤-jar閫夐」鏃訛紝-classpath -cp榪欎袱涓夐」灝嗚蹇界暐錛?/li>
  • 鍐橞ash鏂囦歡榪涜鍔犺澆
  • 濡傛灉浣犱嬌鐢ㄧ殑鏄疛DK6錛屽姞杞界被璺緞榪樻敮鎸?閫氶厤絎﹀姞杞芥墍鏈塲ar鏂囦歡錛歫ava -cp ./lib/* test.HelloWorld


  • Snape 2012-04-11 14:01 鍙戣〃璇勮
    ]]>
    java閲嶈澆閲嶅啓闄烽槺錛?錛?/title><link>http://www.shnenglu.com/chenglong7997/articles/170900.html</link><dc:creator>Snape</dc:creator><author>Snape</author><pubDate>Wed, 11 Apr 2012 06:00:00 GMT</pubDate><guid>http://www.shnenglu.com/chenglong7997/articles/170900.html</guid><wfw:comment>http://www.shnenglu.com/chenglong7997/comments/170900.html</wfw:comment><comments>http://www.shnenglu.com/chenglong7997/articles/170900.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/chenglong7997/comments/commentRss/170900.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/chenglong7997/services/trackbacks/170900.html</trackback:ping><description><![CDATA[<p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; "><strong>闅愯棌錛坔ide錛夛細</strong>瀛愮被鐨勬煇涓瓧孌點侀潤鎬佹柟娉曘佹垚鍛樺唴閮ㄧ被涓庡叾鐖剁被鐨勫叿鏈夌浉鍚屽悕瀛楋紙瀵逛簬闈欐佹柟娉曡繕闇瑕佺浉鍚岀殑鍙傛暟鍒楄〃錛夛紝姝ゆ椂鐖剁被瀵瑰簲鐨勫瓧孌點侀潤鎬佹柟娉曘佹垚鍛樺唴閮ㄧ被灝辮闅愯棌浜嗐?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">涓句釜渚嬪瓙錛屽ぉ楣咃紙Swan錛夋槸浼氶鐨勶紝鑰屼笐灝忛腑錛圲glyDuck錛夊皬鏃跺欐槸涓嶄細椋炵殑錛岀湅鐪嬩笅闈㈢殑浠g爜錛岀湅鐪嬭兘澶熸墦鍗板嚭浠涔堛?/p><pre style="color: #666666; font-size: 12px; line-height: normal; background-color: #ffffff; "><ol><li>class Swan {  </li><li>    public static void fly() {  </li><li>        System.out.println("swan can fly ...");  </li><li>    }  </li><li>}  </li><li> </li><li>class UglyDuck extends Swan {     </li><li>    public static void <a title="Powered by Text-Enhance" id="_GPLITA_0" in_rurl="http://www.textsrv.com/click?v=VVM6MTg3NzM6MzM2OmZseTozMjE3Yzc1Mjc3MzgxY2IxMDRhYTkyZjZjMjNlNGQwZTp6LTEwNDctMTQyMTI6d3d3LmphdmEzei5jb20%3D" style="font-family: Tahoma; color: #0066ff; ">fly</a>() {  </li><li>        System.out.println("ugly duck can't fly ...");  </li><li>    }  </li><li>}  </li><li> </li><li>public class TestFly {    </li><li>    public static void main(String [] args) {  </li><li>        Swan swan = new Swan();  </li><li>        <span style="background-color: #ffff00; ">Swan </span>uglyDuck = new UglyDuck();  </li><li>        swan.fly();  </li><li>        uglyDuck.fly();  </li><li>    }  </li><li>} </li></ol> </pre><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">鎸夐亾鐞嗙殑璇濓紝鎴戜滑璁や負搴旇鏄緭鍑轟袱鍙ヤ笉鍚岀殑緇撴灉錛屽洜涓烘垜浠彲鑳借涓?UglyDuck 緇ф壙浜?Swan 騫朵笖“閲嶅啓”浜?fly() 鏂規硶錛岃屼笖鍦?main() 鏂規硶涓?Swan uglyDuck = <span style="color: #0000ff; ">new</span> UglyDuck();  涔熻〃鏄庝簡 uglyduck 瀹為檯涓婃槸 UglyDuck 綾誨瀷鐨勶紝鍥犳鏋勬垚浜嗗鎬佽涓恒?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">鍏跺疄錛岃繍琛岀粨鏋滄槸涓ゅ彞“swan can fly ...”錛屼負浠涔堜細榪欐牱瀛愶紵鍘熷洜鏈変笅錛?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">1銆佺埗綾?Swan 涓殑 static 闈欐佹柟娉?fly() 鏄笉鑳借閲嶅啓鐨勶紝涓婁竴孌墊垜瀵歸噸鍐欎簩瀛楃敤浜嗗弻寮曞彿錛?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">2銆佸敖綆″瓙綾?UglyDuck 涓殑 fly() 鏂規硶涓庣埗綾諱腑鐨勬湁涓鑷寸殑鍙傛暟鍒楄〃錛屼絾鏄浜?static 鏂規硶鏉ヨ錛岃繖鍙殣钘忥紙hide錛夛紝鑰屼笉鏄噸鍐欙紙override錛夛紱</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">3銆佸浜?static 鏂規硶錛屾牴鏈笉瀛樺湪鍍忓鎬侀偅鏍風殑鍔ㄦ佸垎媧炬満鍒訛紝JVM 涓嶄細鏍規嵁瀵硅薄寮曠敤鐨勫疄闄呯被鍨嬫潵璋冪敤瀵瑰簲鐨勯噸鍐欐柟娉曘傝繖涓鐐瑰湪涓緥瀛愪腑鏄渶閲嶈鐨勩?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">瀵逛簬 static 鏂規硶錛屾垜浠О涔嬩負<strong>綾繪柟娉?/strong>錛屼笉鏄?strong>瀹炰緥鏂規硶</strong>錛屽 static 鏂規硶鐨勮皟鐢ㄧ洿鎺ョ敤鎵灞炵被鍚嶅姞涓偣灝辮錛屽 UglyDuck.fly() 銆傝屽疄渚嬫柟娉曞氨涓嶅緱涓嶄嬌鐢ㄥ璞″紩鐢ㄦ潵鑾峰緱鍏跺彲璁塊棶鏂規硶鐨勮皟鐢ㄦ潈銆傚湪涓婇潰鐨勪緥瀛?main() 涓殑 uglyDuck.fly() 璇彞錛孞VM 鏍規湰鎹笉浼氬幓鍒ゆ柇 uglyDuck 寮曠敤鐨勭┒绔熸槸浠涔堢被鍨嬶紝鏃㈢劧璋冪敤鐨勬槸 fly() 鏂規硶錛岄偅涔?JVM 鍙細鏍規嵁 uglyDuck 鐨勫0鏄庣被鍨嬶紙鍗?Swan 綾伙級鍘昏幏寰楄 static 鏂規硶鐨勮皟鐢ㄣ傛牴鏈氨璋堜笉涓婂鎬?#8230;</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">榪欏氨璇存槑錛?strong>鏈濂介伩鍏嶇敤瀵硅薄寮曠敤鐨勬柟寮忔潵璁塊棶涓涓?static 鏂規硶</strong>銆傛澶栵紝<strong>鍒互涓哄湪緇ф壙鍏崇郴涓婄殑鐖剁被銆佸瓙綾誨彧瑕佹柟娉曞悕銆佸弬鏁板垪琛ㄤ竴鑷村氨鏄噸鍐欙紙override錛夎屾瀯鎴愬鎬侊紝鍏跺疄榪樺緱鐪嬬湅鐖剁被涓殑鏂規硶鏈夋病鏈夎浠涔堜慨楗扮澹版槑</strong>錛堝湪榪欎釜渚嬪瓙涓槸 static 淇グ鐨勶級銆傚啀濡?final 淇グ絎︾殑鏂規硶鍒欒〃鏄庝笉鍙瀛愮被閲嶅啓錛屽嵆鏂規硶鍚嶃佸弬鏁板垪琛ㄤ笉鑳藉拰鐖剁被瀹屽叏涓鑷淬傚湪鎴戠湅鏉ワ紝榪欎竴綾諱慨楗扮灝辮〃鏄庝簡鏂規硶銆佸彉閲忋佸瓧孌電瓑鐗規湁鐨勬ц川錛屾垨鑰呮槸韜喚銆?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">瀵逛簬闅愯棌錛坔ide錛夛紝瀹為檯涓婃槸涓轟簡浣垮緱鐖剁被涓殑璇ユ柟娉曘佸瓧孌點佸唴閮ㄧ被絳変笉鍏佽鍐嶈涓嬩竴綰х戶鎵挎爲鐨勫瓙瀛愮被鎵緇ф壙銆傝璧烽殣钘忥紝鎴戞兂璧楓婁唬鐮佸ぇ鍏?2銆嬪綋涓垰濂界湅榪囩殑鍐呭錛屼綔鑰呰涓烘妸鎻′綇淇℃伅闅愯棌鐨勫師鍒欐潵鎬濊冭蔣浠舵瀯寤鴻浼樹簬闈㈠悜瀵硅薄鍘熷垯銆傛湁鐐規娊璞¢毦鎳傦紝涔︿腑榪樿鍒板皝瑁呫佹ā鍧楀寲鍜屾娊璞$瓑鍑犱釜姒傚康錛屽緩璁湅鐪嬶紝鎴戜篃瑕佸洖榪囧ご鍘誨鍟冨晝榪欎簺鎶借薄姒傚康銆?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">瑕佷慨鏀逛笂闈唬鐮侊紝鍙渶瑕佸幓鎺変袱涓?static 鍒欏彲錛岄偅灝辨瀯鎴愬鎬佷簡銆傘奐ava 瑙f儜銆嬩腑鍏朵粬璋滈榪樿鍒板縐嶈娉ㄦ剰鐨勫湴鏂癸紝鍙互鐪嬬湅銆?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; "><strong>灝忕粨錛?/strong></p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">1銆佹敞鎰忔帉鎻¢噸鍐欙紙override錛変笌闅愯棌錛坔ide錛夌殑寮傚悓鐐癸細鐩稿悓鐐瑰氨鏄袱鑰呴兘鏄浉瀵逛簬緇ф壙鏍戜腑鐖剁被銆佸瓙綾繪潵璇達紝鑰屼笉鍚岀偣灝辨槸鍏剁洰鐨勪互鍙婃墍閫犳垚鐨勬晥鏋溿傚埆鎶婇噸鍐欏拰闅愯棌娣鋒穯鍦ㄤ竴璧蜂簡錛?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">2銆佸浜?static 鏂規硶錛岃閬垮厤鐢ㄥ叿浣撶殑瀵硅薄寮曠敤鏉ヨ皟鐢紝鑰屽簲璇ョ畝鍗曠殑鐢ㄥ叾鎵灞炵被鍚嶈繘琛岃皟鐢ㄥ嵆鍙?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; "> <strong>閬斀錛坰hadow錛夛細</strong>鍏跺疄灝辨槸騫蟲椂鎴戜滑鍙兘閬囧埌鐨勭獎浣滅敤鍩熺殑鍙橀噺鍚嶃佹柟娉曞悕銆佺被鍚嶇瓑灝嗗叾浠栫浉鍚屽悕瀛楃殑鍙橀噺銆佹柟娉曘佺被灞忚斀鎺夌殑鐜拌薄銆?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">渚嬪錛屾渶甯歌鐨勫氨鏄眬閮ㄥ彉閲忓皢綾誨疄渚嬪彉閲忓睆钄戒簡銆傚叾瀹烇紝閬斀榪欎釜璇嶆垜涔嬪墠濂藉儚涔熸病浠涔堝嵃璞★紝涓嶈繃浣滅敤鍩熷睆钄借繖縐嶆儏鍐墊垜浠ぇ澶氬簲璇ヤ細閬垮厤鐨勪簡錛屽洜涓鴻鍫備笂銆佹暀鏉愪笂瀵逛簬鍙橀噺浣滅敤鍩熺殑鍐呭宸茬粡璁茶В榪囦簡錛屽敖綆℃病鏈夎繖涔堜竴涓湳璇傛鏃跺鏋滄兂瑕佽幏寰楄閬斀瀹炰綋鐨勫紩鐢ㄣ佽皟鐢紝鍒欏彧鑳介氳繃瀹屾暣鐨勯檺瀹氬悕鍘誨疄鐜頒簡銆備笉榪囨湁涓浜涙儏鍐靛彲鑳芥槸鏍規湰灝卞紩鐢ㄤ笉鍒扮殑錛岃灞忚斀寰楀お涓ュ瘑浜嗐?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; "> <strong>閬帺錛坥bscure錛夛細</strong>涓涓彉閲忓彲浠ラ伄鎺╁叿鏈夌浉鍚屽悕瀛楃殑涓涓被錛屽彧瑕佸畠浠兘鍦ㄥ悓涓涓寖鍥村唴錛氬鏋滆繖涓悕瀛楄鐢ㄤ簬鍙橀噺涓庣被鍨嬮兘琚鍙殑鑼冨洿錛岄偅涔堝畠灝嗗紩鐢ㄥ埌鍙橀噺涓娿傜浉浼煎湴錛屼竴涓彉閲忓悕鎴栦竴涓被鍚嶅彲浠ラ伄鎺╀竴涓寘銆傞伄鎺╂槸鍞竴涓縐嶄袱涓悕瀛椾綅浜庝笉鍚岀殑鍚嶅瓧絀洪棿鐨勫悕瀛楅噸鐢ㄥ艦寮忥紝榪欎簺鍚嶅瓧絀洪棿鍖呮嫭錛氬彉閲忋佸寘銆佹柟娉曟垨綾匯傚鏋滀竴涓被鍨嬫垨涓涓寘琚伄鎺╀簡錛岄偅涔堜綘涓嶈兘閫氳繃鍏剁畝鍗曞悕寮曠敤鍒板畠錛岄櫎闈炴槸鍦ㄨ繖鏍蜂竴涓笂涓嬫枃鐜涓紝鍗寵娉曞彧鍏佽鍦ㄥ叾鍚嶅瓧絀洪棿涓嚭鐜頒竴縐嶅悕瀛椼傞伒瀹堝懡鍚嶄範鎯氨鍙互鏋佸ぇ鍦版秷闄や駭鐢熼伄鎺╃殑鍙兘鎬с?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">鍏跺疄錛岄伄鎺╄繖涓湳璇垜鏇存槸瀹屽叏娌″惉榪囦簡錛屼笂闈㈣繖涓孌墊槸浠庛奐ava 瑙f儜銆嬩腑寮曠敤榪囨潵鐨勩傛垜瑙夊緱錛屽鏋滀唬鐮佹槸涓涓漢鎵鍐欙紝鎴栬呭洟闃熶腑澶у閮介伒瀹堜簡涓瀹氱殑鍛藉悕瑙勮寖錛岃屼笖涔熷悇鑷垎閰嶄簡涓瀹氳亴璐o紝閭d箞閬帺榪欑鎯呭喌搴旇鏄彲浠ラ伩鍏嶇殑銆傚悓鏍鳳紝闇瑕佷嬌鐢ㄥ畬鍏ㄩ檺瀹氬悕鏉ュ紩鐢ㄨ閬帺鎺夌殑瀹炰綋錛屽涓嬶細</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">鐢ㄥ墠闈緥瀛愮殑浠g爜澶ф灝辨槸榪欑鎯呭喌錛?br /></p><pre style="color: #666666; font-size: 12px; line-height: normal; background-color: #ffffff; "><ol><li>public class TestFly {    </li><li>    // 濡傛鍙橀噺鍚? </li><li>    static String <span style="background-color: #ffff00; ">System </span>= "system";  </li><li>    public static void main(String [] args) {  </li><li> </li><li>//      String System = "hao";    </li><li>        // 緙栬瘧涓嶉氳繃  </li><li>//      <span style="background-color: #ffff00; ">System.out.println("No"); </span> </li><li>        // 緙栬瘧閫氳繃  </li><li>        java.lang.System.out.println("OK");  </li><li>    }  </li><li>}</li></ol></pre><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; "><strong>灝忕粨錛?/strong></p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">1銆佹垜瑙夊緱錛屽湪鏂囩珷鏍囬褰撲腑鐨勪簲涓悕璇嶅綋涓紝灝や負鍓嶉潰涓変釜鏈涓洪噸瑕侊紝闄烽槺鐐稿脊涔熷澶氾紝鑰屼笖鏂囦腑鎵璁蹭粎浠呮槸閭d箞涓涓佺偣鍎跨浉鍏崇殑錛屽ぇ閲忔洿緇嗚妭鐨勮繕寰楁參鎱㈠彂鐜幫紱</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">2銆佸氨綆楀悗闈袱涓悕璇嶏紝涔熷氨鏄繖涓ょ鎯呭喌涓嶅父瑙侊紝浣嗕簡瑙d竴涓嬭鍦ㄨ剳閲岃繕鏄笉閿欑殑錛屾瘯绔熶負鑷繁澧炲姞浜嗕笓涓氳瘝姹囬噺錛?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">3銆佹渶鍚庯紝灝辨槸寤鴻鍚勪綅涔熺湅鐪嬨奐ava 瑙f儜銆嬬劧鍚庝篃鍛婅瘔鎴戜竴浜涚偢寮瑰瀷闄烽槺涔嬬被鐨勶紝鍛靛懙...瀛︿範蹇箰錛佸姞娌癸紒</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">鏈枃鍑鴻嚜 “铓傝殎” 鍗氬錛岃鍔″繀淇濈暀姝ゅ嚭澶刪ttp://haolloyin.blog.51cto.com/1177454/372911</p><img src ="http://www.shnenglu.com/chenglong7997/aggbug/170900.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/chenglong7997/" target="_blank">Snape</a> 2012-04-11 14:00 <a href="http://www.shnenglu.com/chenglong7997/articles/170900.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>java閲嶈澆閲嶅啓闄烽槺http://www.shnenglu.com/chenglong7997/articles/170899.htmlSnapeSnapeWed, 11 Apr 2012 05:59:00 GMThttp://www.shnenglu.com/chenglong7997/articles/170899.htmlhttp://www.shnenglu.com/chenglong7997/comments/170899.htmlhttp://www.shnenglu.com/chenglong7997/articles/170899.html#Feedback0http://www.shnenglu.com/chenglong7997/comments/commentRss/170899.htmlhttp://www.shnenglu.com/chenglong7997/services/trackbacks/170899.html  鐪嬨婇噸鏋勶紙娉ㄩ噴鐗堬級銆嬩腑“灝佽闆嗗悎錛圗ncapsulate Collection錛?#8221;涓鑺傛椂錛岀敱浜庤閲嶆瀯鎵嬫硶瀵逛簬涓嶅悓鐨?Java 鐗堟湰浼氭湁鐩稿搴斾笉鍚岀殑澶勭悊鏂瑰紡錛屼簬鏄敞閲婅呭湪鏃佽竟緇欏嚭鎻愮ず錛欽ava 2 涓殑鏂?Collections API 涓昏鏄敱銆奐ava 瑙f儜銆嬨併奅ffective Java銆嬭繖涓ゆ湰涔︾殑浣滆呭紑鍙戞敼榪涚殑銆傛垜鎯籌紝榪欏彲鐪熸槸涓涓ぇ娑堟伅錛孞ava 綾誨簱鐨勫紑鍙戣呮墍鍐欑殑涔︿竴瀹氬緱鐪嬶紝寮鍙戣呰偗瀹氭繁鍏ユ帰瀵昏繃 Java 鍐呴儴鏈哄埗錛岃涓嶅畾鑳戒粠涔︿腑鑾峰緱鏈煡鐨勭煡璇嗙偣鍛€?/p>

    濂藉湪鎴戣寰楄嚜宸辯數鑴戦噷涓嬭澆榪囥奐ava 瑙f儜錛堜腑鏂囩増錛夈嬬殑娓呮櫚鐢靛瓙鐗堬紝浜庢槸鏀瑰彉璺嚎錛岀湅璧瘋繖鏈功鏉ヤ簡銆傜湡鏄笉鐪嬩笉鐭ラ亾錛屼竴鐪嬪悡涓璺籌紒閲岄潰鏈?95 涓?Java 璋滈錛屼竴鐐圭偣鍦扮湅浜嗕箣鍚庯紝鎴戞槸鏃㈡儹鎰у張鍏村錛屽洜涓洪噷闈㈢殑棰樼湡鐨勬槸“鑾悕鍏跺”錛岀洿鐧界偣灝辨槸錛氬崄鏈夊叓涔濇槸鎯抽兘鎯充笉鍑烘潵鐨勶紝⊙錒?#8857;b…鎯寵鐪熸鎺屾彙 Java 錛屾垜瑙夊緱銆奐ava 瑙f儜銆嬫槸涓嶅緱涓嶇湅鐨勩傚ぇ澶氳皽棰樺彲璋撴槸鍓嶆墍鏈鐨勭偢寮癸紝涓涓嶅皬蹇冨氨 over 浜嗐?/p>

    蹇偣鍒囧叆姝i錛屽鏂囩珷鏍囬鎵紺猴紝鎴戜粠銆奐ava 瑙f儜銆嬩腑浼間箮璁よ瘑鍒頒簡鍑犱釜鍚嶈瘝錛屼箣鎵浠ョ敤浼間箮淇グ錛屽洜涓洪噸杞姐侀噸鍐欍侀殣钘忚繖鍑犱釜鎺ヨЕ榪囦簡錛岃岄伄钄姐侀伄鎺╂垨璁告槸瑙佽繃浣嗕篃灝卞繕鍏変簡銆傚氨鏁寸悊涓涓嬫枃涓殑涓浜涗笌姝ょ浉鍏崇殑 Java 璋滈鐢ㄨ嚜宸辯殑鐞嗚В鎻忚堪涓涓嬪惂銆?/p>

    閲嶈澆錛坥verload錛夛細鍚屼竴涓被涓悕瀛楃浉鍚屼絾鍙傛暟鍒楄〃涓嶅悓鐨勫涓柟娉曚箣闂寸殑鍏崇郴銆?/p>

    鍏充簬閲嶈澆錛屾槸鎴戜滑姣旇緝鐔熸倝鐨勪簡錛屾渶甯歌鐨勫氨鏄繍鐢ㄥ湪綾葷殑澶氫釜鏋勯犲嚱鏁頒腑錛岀湅涓涓?Java 甯姪鏂囨。錛屽氨鍙互鏄庣櫧榪欎竴鎯呭喌浜嗐傝屽湪銆奐ava 瑙f儜銆嬩腑錛屼綔鑰呯粰鍑轟簡涓嬮潰涓涓皽棰橈細

    1. public class Confusing {   
    2.       
    3.     private Confusing(Object o) {   
    4.         System.out.println("Object");   
    5.     }   
    6.       
    7.     private Confusing(double[] dArray) {   
    8.         System.out.println("double array");   
    9.     }   
    10.       
    11.     public static void main(String[] args) {   
    12.         new Confusing(null);   
    13.     }   
    14. }  

    闂鏃?main() 涓皢浼氳緭鍑轟粈涔堬紵鍒濆垵涓鐪嬶紝騫舵病鏈夊鍒嗘瀽灝辮寰楀簲璇ユ槸杈撳嚭“Object”錛岃櫧鐒禞ava涓殑鏁扮粍瀹為檯涓婁篃鏄紩鐢ㄧ被鍨嬶紝浣嗘瘯绔烵bject 鏄墍鏈夌被鐨勬渶緇堢埗綾伙紝鑰屼笖鐩墠 JDK 灝辮繛鍙傛暟涓殑鍩烘湰鏁版嵁綾誨瀷鍙橀噺涔熷彲浠ヨ鑷姩鎯充笂杞瀷鎴愬寘瑁呯被鑰屾垚涓?Object 鐨勫瓙綾匯備簬鏄垜淇濆畧涓鐐瑰湴灝辮涓哄弬鏁?null 搴旇鏄尮閰嶅埌 Object 閭d釜閲嶈澆鏂規硶鍘諱簡銆?/p>

    鍙槸榪欑瓟妗堟槸閿欑殑錛孞VM 瀵逛簬閲嶈澆鏂規硶鐨勮В鏋愭槸榪欐牱鐨勶細鍏堟壘鍑烘柟娉曞悕鍖歸厤鐨勬墍鏈夊彲鑳界殑鏂規硶錛涚劧鍚庢牴鎹紶榪涙潵鐨勫艦鍙傚啀嬈$瓫閫夊嚭鍙兘鐨勯噸杞芥柟娉曪紱鏈鍚庢墠鏄湪榪欎簺鏂規硶涓尮閰嶅埌涓涓?strong>鏈綺劇‘鐨勪竴涓柟娉曘?/span>浜庢槸錛屼笂闈㈢殑閭d釜璋滈灝卞彉鎴愮‘瀹氬摢涓涓墠鏄渶綺劇‘榪欎竴鐐瑰瓙涓婁簡銆?/p>

    鑰屽叧浜庡浣曞垽鏂渶綺劇‘錛屾湁榪欐牱鐨勬満鍒訛細濡傛灉鏌愪釜閲嶈澆鏂規硶鑳藉鎺ユ敹鎵鏈変紶閫掔粰鍙︿竴涓噸杞芥柟娉曠殑瀹炲弬綾誨瀷錛岄偅涔堝浜庡弬鏁板垪琛ㄦ潵鐪嬶紝鏄劇劧鍚庤呰嚦灝戞槸鍓嶈呯殑瀛愰泦錛屽綋鐒朵篃灝辨洿綺劇‘浜嗐?/span>

    鍥炲埌璋滈涓婃潵錛孋onfusing(Object)鍙互鎺ュ彈浠諱綍浼犻掔粰 Confusing(double[ ])鐨勫弬鏁幫紙浠諱綍鏁扮粍寮曠敤鏈緇堣兘澶熼兘鏄?Object 瀵硅薄錛夛紝鍥犳 main() 涓殑 null 搴旇鏄 JVM 鍖歸厤鍒?Confusing(double[ ]) 涓紝涔熷氨鏈変簡涓庢垜鎵璁や負鐨勭粨鏋滅浉鍙嶇殑杈撳嚭浜嗐?/p>

    灝忕粨錛?/strong>榪欎釜璋滈琛ㄦ槑浜嗘垜浠湪鍐欓噸杞芥柟娉曟椂錛屾渶濂芥槸鏄庣‘鍦板尯鍒嗗嚭鍚勪釜鏂規硶涓殑鍙傛暟鍒楄〃錛屼笉瑕佽褰兼涔嬮棿鏈変簰鐩稿寘鍚佹ā緋婁笉娓呯殑鍏崇郴銆傝櫧鐒墮噸杞芥槸涓轟簡鍦ㄧ浉鍚屽悕瀛楃殑鏂規硶涓紶鍏ュ疄鍙傦紝鐢?JVM 鍔ㄦ佽В鏋愰夋嫨鍚堥傜殑鏂規硶錛屼絾鏈夋椂涔熷緢瀹規槗闄峰叆榪欑鏂逛究鑳屽悗鎵甯︽潵鐨勫湴闆峰尯褰撲腑銆傚叾涓竴縐嶅彲琛岀殑鍔炴硶灝辨槸錛?span style="background-color: #ffff00; ">鎻愪緵涓嶅悓鐨勬柟娉曞悕銆備絾鏄瀯閫犲嚱鏁扮殑鍚嶅瓧涓瀹氬緱鐩稿悓鐨勫晩錛?/p>

    瀹為檯涓婏紝鍦ㄣ婇噸鏋勪笌妯″紡銆嬬鍏珷涓紝浣滆呯敤浠栬嚜韜殑欏圭洰緇忛獙瀵?#8220;鍒涘緩”榪欎竴璇濋灞曞紑浜嗚瑙o紝灝辯畻鏄瀯閫犲嚱鏁幫紝涔熸湁寰堝ソ鐨勯噸鏋勬墜娉曞皢鍏舵竻鏅板湴鍖哄垎寮鏉ワ紝涓嶄嬌鐢ㄩ噸杞借屾槸鐢ㄤ笉鍚屽悕縐扮殑鏂規硶錛屽皢鍘熸湰闇瑕侀噸杞界殑鏋勯犲嚱鏁板鎵樼粰鍏鋒湁鏈澶у畬鏁村弬鏁板垪琛ㄧ殑縐佹湁鏋勯犲嚱鏁頒腑銆傚張鏄竴鏈粡鍏革紝鍊煎緱鐪嬪摝…

     

    閲嶅啓錛坥verride錛夛細鐖剁被涓殑瀹炰緥鏂規硶琚叾瀛愮被閲嶆柊瀹炵幇銆傛棦鐒舵槸瀹炰緥鏂規硶錛岄偅灝辨槸闈?static 淇グ鐨勪簡錛屽惁鍒欏氨鏄?static 闈欐佹柟娉曚簡錛岄偅鍙仛綾繪柟娉?/strong>銆傚湪鎴戠湅鏉ワ紝姝f槸閲嶅啓榪欎竴鏈哄埗鐨勫瓨鍦紝鎵嶄負澶氭佹満鍒舵彁渚涗簡鍩虹銆傛垨璁?implements 錛堝疄鐜幫級涓涓?interface 錛堟帴鍙o級涓墍澹版槑鐨勬柟娉曚篃鑳芥垚涓洪噸鍐欙紝鍥犱負 interface 鐨勪竴閮ㄥ垎瀛樺湪鍘熷洜涔熸槸涓轟簡澶氭併?/p>

    瀵逛簬閲嶅啓錛屽湪銆奐ava 瑙f儜銆嬩腑鏈変笅闈㈣繖涓皽棰樿鎴戞槑鐧斤細緇濆涓嶈兘鍦ㄦ瀯閫犲嚱鏁頒腑璋冪敤鍙兘浼氳瀛愮被閲嶅啓鐨勬柟娉曘?/strong>

    1. class Point {  
    2.     protected final int x, y;  
    3.     private final String name;  
    4.       
    5.     Point(int x, int y) {  
    6.         this.x = x;  
    7.         this.y = y;  
    8.         name = makeName();  
    9.     }  
    10.  
    11.     protected String makeName() {  
    12.         return "[" + x + "," + y + "]";  
    13.     }  
    14.       
    15.     public final String toString() {  
    16.         return name;  
    17.     }  
    18. }  
    19.  
    20. public class ColorPoint extends Point {  
    21.     private final String color;  
    22.       
    23.     ColorPoint(int x, int y, String color) {  
    24.         super(x, y);  
    25.         this.color = color;  
    26.     }  
    27.       
    28.     protected String makeName() {  
    29.        return super.makeName() + ":" + color;  
    30.     }  
    31.       
    32.     public static void main(String[] args) {  
    33.         System.out.println(new ColorPoint(4, 2, "purple"));  
    34.     }  

    姝ゆ椂紼嬪簭榪愯緇撴灉騫朵笉鏄垜浠墍鎯崇殑 [4,2]:purple 錛岃屾槸 [4,2]:null 銆備負浠涔堜細榪欐牱錛熺湅鐪嬩笅闈㈢敤嫻佺▼鏍囧彿娉ㄩ噴榪囩殑浠g爜錛屽氨鑳界悊瑙d簡銆?/p>

    1. class Point {  
    2.     protected final int x, y;  
    3.     private final String name;  
    4.  
    5.     Point(int x, int y) {  
    6.         this.x = x;  
    7.         this.y = y;  
    8.         name = makeName();// 3. 鐢變簬琚瓙綾婚噸鍐欒繃鐨刴akeName()  
    9.     }  
    10.  
    11.     protected String makeName() {  
    12.         return "[" + x + "," + y + "]";  
    13.     }  
    14.       
    15.     public final String toString() {  
    16.         return name;  
    17.     }  
    18. }  
    19.  
    20. public class ColorPoint extends Point {  
    21.     private final String color;  
    22.  
    23.     ColorPoint(int x, int y, String color) {  
    24.         super(x, y); // 2. 璋冪敤Point鐖剁被鏋勯犲嚱鏁? 
    25.         this.color = color; // 5. 鍒濆鍖?nbsp;color 錛屽彲鏄凡緇忓お鏅氫簡...  
    26.     }  
    27.  
    28.     protected String makeName() {  
    29.         // 4. 闂鏉ヤ簡錛氬畠鍦ㄥ瓙綾繪瀯閫犲嚱鏁頒箣鍓嶈皟鐢ㄤ簡  
    30.         // 鑰屾鏃剁殑 color 鏄?nbsp;null 鐨勫晩錛侊紒錛? 
    31.         return super.makeName() + ":" + color;  
    32.     }  
    33.  
    34.     public static void main(String[] args) {  
    35.         // 1. 璋冪敤ColorPoint瀛愮被鏋勯犲嚱鏁? 
    36.         System.out.println(new ColorPoint(4, 2, "purple"));  
    37.     }  

    鎬濊礬寰堟竻鏅頒簡錛孋olorPoint 瀛愮被涓殑鏋勯犲嚱鏁頒腑鐨?this.color = color; 榪樻湭琚墽琛屽埌灝卞皢 null 浣滀負 String color 鐨勫間簡銆傛鏄洜涓鴻繖縐嶆潵鏉ュ洖鍥炵殑璋冪敤浣垮緱紼嬪簭鍙樺緱涓嶆甯鎬簡錛屽湪鎴戠湅鏉ワ紝鏈夐偅涔堜竴鐐圭被浼間簬“鍥炶皟”鐨勬剰鎬濄?/p>

    瑕佸幓闄よ繖縐嶄唬鐮佺粨鏋勭殑涓嶅悎鐞嗭紝鏈濂借繕鏄妸 Point 鐖剁被鏋勯犲嚱鏁頒腑璋冪敤 makeName() 鏂規硶涓鍙ュ幓鎺夛紝鐒跺悗鍦?toString  涓垽鏂茍璋冪敤 makeName() 鏉ヤ負 name 鍒濆鍖栵紝濡備笅錛?/p>

    灝忕粨錛?/strong>閲嶅啓瀵逛簬澶氭佸浐鐒墮噸瑕侊紝浣嗘槸璁捐鍑轟笉姝g‘鐨勪唬鐮佺粨鏋勭殑璇濓紝鍘熸湰鎯寵鐨勫鎬佸氨浼氳鎵洸鐢氳嚦閫犳垚鍙嶆晥鏋溿備簬鏄紝緇濆涓嶈鍦ㄦ瀯閫犲嚱鏁頒腑璋冪敤鍙兘浼氳瀛愮被閲嶅啓鐨勬柟娉曘?/p>

     濂藉儚鏂囧瓧澶鐨勬枃绔犵湅浜嗗鏄撲嬌浜烘檿涔庝箮鐨勶紝鍟板暟鍡﹀棪銆佹ā妯$硦緋婂湴鎵嶅啓浜嗕袱涓瘝鍎匡紝榪樻槸鍒嗗紑鏉ュ啓鍚с傚叾瀹烇紝鐪嬩簡涓閮ㄥ垎銆奐ava 瑙f儜銆嬫墠鏄庣櫧榪樻湁濂藉濂藉 Java 閲岄潰璇ユ敞鎰忕殑瑕佺偣銆傝鎯沖湪閫傚綋鐨勬椂鍊欒鯨娓呭悇縐嶈娉曚笂銆佹満鍒朵笂鐨勭煡璇嗙偣錛岄毦鍟婏紒

    璁板緱楂樹腑璇枃璇句笂璇昏繃涓鐗囨姃鎯呯殑鏁f枃錛屾爣棰樹負“鍝?#8212;—棣欓洩錛?#8221;鑰屾垜鐪嬩簡銆奐ava 瑙f儜銆嬶紝鎯寵“鍣?#8212;—Java錛?#8221;~~~~(&gt;_&lt;)~~~~

    鎬葷粨錛?/strong>

    1銆佸湪鎴戜滑緙栫▼棰嗗煙錛屽ソ涔︾湡鐨勬槸涓澶ф妸錛屽氨鐪嬭嚜宸辨湁娌℃椂闂淬佹湁娌$瓥鐣ュ湴鍘誨惛鏀朵簡錛?/p>

    2銆佹湁鏃跺欑湅濂戒功鏃剁暀鎰忎綔鑰呭鍏朵粬涔︾睄鐨?#8220;鍙嬫儏閾炬帴”錛屾垨鑰呭嚭鐗堢ぞ鎺ㄨ崘鐨勭浉鍏充功綾嶏紝榪欐牱灝辮兘澶熷厤鍘昏嚜宸辨參鎱㈡悳瀵誨ソ涔︾殑榪囩▼浜嗭紝O(∩_∩)O鍝堬紒

    鏈枃鍑鴻嚜 “铓傝殎” 鍗氬錛岃鍔″繀淇濈暀姝ゅ嚭澶刪ttp://haolloyin.blog.51cto.com/1177454/372691



    Snape 2012-04-11 13:59 鍙戣〃璇勮
    ]]>java 闈欐佹暟鎹?/title><link>http://www.shnenglu.com/chenglong7997/articles/170898.html</link><dc:creator>Snape</dc:creator><author>Snape</author><pubDate>Wed, 11 Apr 2012 05:57:00 GMT</pubDate><guid>http://www.shnenglu.com/chenglong7997/articles/170898.html</guid><wfw:comment>http://www.shnenglu.com/chenglong7997/comments/170898.html</wfw:comment><comments>http://www.shnenglu.com/chenglong7997/articles/170898.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/chenglong7997/comments/commentRss/170898.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/chenglong7997/services/trackbacks/170898.html</trackback:ping><description><![CDATA[<span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; text-align: -webkit-left; background-color: #ffffff; ">  鍓嶉潰璁ㄨ鐨則his鍏抽敭瀛楋紝鍏稿瀷鍦板弽鏄犱簡闅忕潃瀵硅薄寮曠敤鐨勪笉鍚岋紝鍏跺彉閲忓拰鎿嶄綔浜︿笉鍚岋紝浣撶幇浜嗛潰鍚戝璞$紪紼嬬殑鍐呮兜銆備絾鏄紝鏈夋椂鍦ㄧ▼搴忎腑鐨勮姹傛濂戒笌姝ょ浉鍙?#8212;—闇瑕佷唬琛ㄦ暣涓被鐨勬暟鎹侸ava鎻愪緵鐨勯潤鎬佹暟鎹紙static data錛夊氨鏄笓闂ㄧ敤鏉ュ疄鐜拌繖涓瑕佹眰鐨勩?/span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; text-align: -webkit-left; background-color: #ffffff; " /><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; text-align: -webkit-left; background-color: #ffffff; " /><span id="hvzpftn" class="STYLE1" style="color: #0000ff; font-family: Tahoma; font-size: 12px; line-height: normal; text-align: -webkit-left; background-color: #ffffff; ">浜屻佺被鏁版嵁</span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; text-align: -webkit-left; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; text-align: -webkit-left; background-color: #ffffff; ">   闈欐佹暟鎹睘浜庡叏浣撳璞★紝鏄墍鏈夊璞″叡浜殑鏁版嵁錛屾垨綾繪暟鎹傞潤鎬佸父閲忎篃縐頒負綾誨父閲忥紱闈欐佸彉閲忎篃縐扮被鍙橀噺銆傚湪瑙e喅瀹為檯闂涓粡甯鎬細閬囧埌綾繪暟鎹備緥濡傦紝Math.PI錛孧ath.E瀵規墍鏈夊璞$殑綆楁湳榪愮畻閮芥槸涓鏍風殑錛屽畠浠瀹氫箟涓篗ath綾葷殑闈欐佸父閲忋?/span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; text-align: -webkit-left; background-color: #ffffff; " /><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; text-align: -webkit-left; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; text-align: -webkit-left; background-color: #ffffff; ">    鍐嶄緥濡傦紝紼庢敹姣旂巼鍦ㄨ綆楃◣嬈炬椂瀵規墍鏈夊畾涔夌殑瀵硅薄閮介傜敤錛屼篃鏄潤鎬佹暟鎹殑鍏稿瀷渚嬪瓙銆傛湁鏃訛紝鎴戜滑闇瑕佺粺璁″垱寤轟簡澶氬皯涓璞★紝鎴栬呮湁澶氬皯涓璞¤皟鐢ㄤ簡鏌愪釜鏂規硶錛屾垨鑰呭簲鐢ㄤ簡鏌愪釜鎿嶄綔絳夌瓑錛岃繖闇瑕佸湪紼嬪簭涓嬌鐢ㄩ潤鎬佹暟鎹潵瀹屾垚榪欎簺浠誨姟銆傜被鏁版嵁鍙互鏄痯rivate鎴杙ublic銆?/span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; text-align: -webkit-left; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; text-align: -webkit-left; background-color: #ffffff; ">濡備笅鏄畾涔夐潤鎬佹暟鎹殑鍏稿瀷渚嬪瓙銆?/span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; text-align: -webkit-left; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; text-align: -webkit-left; background-color: #ffffff; ">渚?錛庡畾涔夐潤鎬佸彉閲忋?/span> <br /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">private static double accountLimit; //瀹氫箟涓涓弻綺懼害闈欐佸彉閲?nbsp;</span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">private static int userCount = 0; //瀹氫箟涓涓暣鏁伴潤鎬佸彉閲忓茍璧嬪?/span> <br /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">public static String welcome = "Java is hot!"; //瀹氫箟涓涓瓧絎︿覆闈欐佸彉閲忓茍璧嬪?/span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">渚?錛庡畾涔夐潤鎬佸父閲忋?/span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">private static final float TAX_RATE = 0.0875f; //瀹氫箟涓涓誕鐐歸潤鎬佸父閲?/span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">public static final double EARTH_MASS = 5.972e24; //瀹氫箟涓涓弻綺懼害闈欐佸父閲?/span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">public static final int MONTH_IN_YEAR = 12; //瀹氫箟涓涓暣鏁伴潤鎬佸父閲?/span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">娉ㄦ剰 闈欐佸父閲忓繀欏誨湪瀹氫箟鏃惰祴鍊箋傚惁鍒欎負闈炴硶銆?/span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">濡備笅鏄嬌鐢ㄩ潤鎬佹暟鎹殑鍏稿瀷渚嬪瓙錛?/span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">public FutureValue() { //鏋勯犲櫒</span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">  //瀵瑰璞℃暟鎹垵濮嬪寲鐨勫悇璇彞</span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">  ...</span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">  userCount++錛?//姣忓垱寤轟竴涓璞★紝閮藉鍘熸潵緇熻鐢ㄦ埛鏁扮洰鐨勯潤鎬佸彉閲弖serCount鍔?</span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">}</span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">public FutureValue(String name) {</span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">  this.name = name;</span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">  //瀵瑰叾浠栧悇鍙橀噺鍒濆鍖栫殑璇彞</span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">  ...</span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">  userCount++; //鍚屼笂</span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">}</span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">浠ヤ笂渚嬪瓙琛ㄧず鏃犺浠ュ摢涓瀯閫犲櫒鍒涘緩瀵硅薄錛屽闈欐佸彉閲弖serCount閮芥墽琛屽姞1錛岃揪鍒扮粺璁″璞$殑鐩殑銆傚鏋滄墽琛屼笅鍒楄緭鍑鴻鍙ワ細</span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">System.out.println(myFutureValue.getUserCount()); //鐢ㄥ璞¤皟鐢?/span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">鍏惰緭鍑哄間笌錛?/span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">System.out.pritnln(FutureValue.getUserCount()); //鐢ㄩ潤鎬佹柟娉曢氳繃綾葷洿鎺ヨ皟鐢?/span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">瀹屽叏涓鏍楓?/span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">闈欐佹暟鎹氬父鐢遍潤鎬佹柟娉曟潵璋冪敤銆?/span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #0000ff; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">涓夈?灞炰簬鎵鏈夊璞?/span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">   闈欐佹暟鎹負浠涔堝睘浜庢暣涓被錛屾垨綾諱腑鐨勬墍鏈夊璞″憿錛熻繖鏄洜涓哄畠浠鍌ㄥ瓨鍦ㄧ壒孌婃寚瀹氱殑瀛樺偍鍣ㄤ腑銆傝繘涓姝ヨ錛岄潤鎬佹暟鎹偍瀛樺湪綾昏闂尯鐨勫偍瀛樼┖闂淬傝繖涓偍瀛樼┖闂存槸榪欎釜綾諱唬琛ㄧ殑鎵鏈夊璞″叡浜殑錛屽畠鐨勮闂敓鍛芥湡鍜岃繖涓被鐩稿悓銆?/span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">    鑰屽疄渚嬫暟鎹垎鍒偍瀛樺湪浠h〃姣忎釜瀵硅薄鐨勪竴孌靛瓨鍌ㄥ尯鍩熶腑銆傚亣璁炬垜浠垱寤轟簡100涓璞★紝閭d箞灝嗘湁100涓繖鏍風殑鍌ㄥ瓨鍖哄煙瀛樺湪銆傚嵆姣忎釜瀵硅薄閮芥湁瀹冭嚜宸辯嫭绔嬪瓨鍌ㄥ尯鍩燂紝鐢ㄦ潵瀛樺偍瀹冩墍鍏鋒湁鐨勬墍鏈夊疄渚嬫暟鎹傝繖涓瓨鍌ㄥ尯鍩熺殑璁塊棶鐢熷懡鏈熷拰瀵硅薄鐩稿悓銆?/span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #0000ff; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">鍥涖侀潤鎬佹暟鎹師鍒?/span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">   闈欐佹暟鎹槸綾葷殑緇勬垚閮ㄥ垎錛岀‘瀹氶潤鎬佹暟鎹鍏堜粠綾葷殑璁捐鍏ユ墜錛屽垎鏋愬拰紜畾綾葷殑搴旂敤鑼冪暣錛屽畠鎵鎵ц鐨勮繍綆楀拰鎿嶄綔錛屽寘鎷‘瀹氭暟瀛﹀叕寮忎互鍙婅繍綆楅昏緫絳夈傜敱姝ゆ潵紜畾闈欐佹暟鎹拰瀹炰緥鏁版嵁銆傞潤鎬佹暟鎹笌瀹炰緥鏁版嵁鏈川鐨勪笉鍚屽湪浜庯細</span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">錛?錛?瀹炰緥鏁版嵁鏄湪榪欎釜綾葷殑搴旂敤涓紝姣忎釜瀵硅薄錛屾垨澶у鏁板璞¢兘鍏鋒湁鐨勩佷絾鍚勮嚜鏈変笉鍚屽肩殑鏁版嵁銆備緥濡傦紝鍦ㄨ綆楁姇璧勫洖鎶ョ殑紼嬪簭涓紝姣忎釜瀵硅薄閮芥湁濮撳悕錛坣ame錛夈佹湀鎶曡祫棰濓紙monthlyInvest錛夛紝騫存姇璧勫洖鎶ョ巼錛坹earlyRate錛夛紝浠ュ強鎶曡祫騫達紙years錛夛紝浣嗚繖浜涙暟鎹殑鍊煎姣忎釜瀵硅薄鏉ヨ錛屾槸瀹屽叏鐢卞璞℃潵紜畾鐨勶紝涓庢暣涓被鏃犲叧錛涗笌鍏蜂綋瀵硅薄鐨勫艦鎬佹湁鍏熾?/span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">錛?錛?闈欐佹暟鎹槸鎵鏈夊璞″叡浜殑鏁版嵁銆傚湪榪欎釜綾葷殑搴旂敤涓紝鏃犺鍝竴涓璞★紝濡傛灉搴旂敤榪欎釜鏁版嵁鐨勮瘽錛岄兘蹇呴』鍏鋒湁鐩稿悓鐨勫鹼紝鎴栬呰繖涓暟鎹鎵鏈夊璞¢兘鏈夋剰涔夛紝鎴栬呰繖涓暟鎹唬琛ㄤ簡鎵鏈夊璞$殑褰㈡佽〃寰侊紝涓庢暣涓被鏈夊叧銆?/span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">鏍規嵁浠ヤ笂鍒嗘瀽錛岀‘瀹氶潤鎬佹暟鎹彲鏍規嵁濡備笅鍘熷垯錛?/span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">1錛?瀵圭被涓殑瀵硅薄榪涜緇熻鐨勬暟鎹簲璇ョ‘瀹氫負闈欐佹暟鎹?/span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">2錛?瀵圭被涓墍鏈夊璞★紝璁劇疆涓婁笅闄愮殑鏁版嵁錛屽簲璇ョ‘瀹氫負闈欐佸父閲忔暟鎹?/span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">3錛?鍦ㄦ墽琛岃繍綆楃殑鍏紡鍜岃В鍐抽棶棰樼殑閫昏緫涓紝鏌愪釜甯擱噺瀵圭被涓墍鏈夌殑瀵硅薄錛屽鏋滄湁鐩稿悓搴旂敤錛岃繖涓父閲忓簲璇ョ‘瀹氫負闈欐佸父閲忔暟鎹?/span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">4錛?鐢ㄦ潵瀵圭被涓墍鏈夊璞¤繘琛屾彁紺恒佽闂侀棶鍊欎互鍙婂叾浠栦笌鍏蜂綋瀵硅薄鏃犲叧鐨勪俊鎭垨鏁版嵁錛屽簲璇ョ‘瀹氫負闈欐佸父閲忔暟鎹?/span> <img src ="http://www.shnenglu.com/chenglong7997/aggbug/170898.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/chenglong7997/" target="_blank">Snape</a> 2012-04-11 13:57 <a href="http://www.shnenglu.com/chenglong7997/articles/170898.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>java閲嶅啓鏂規硶鐨勫師鍒?/title><link>http://www.shnenglu.com/chenglong7997/articles/170896.html</link><dc:creator>Snape</dc:creator><author>Snape</author><pubDate>Wed, 11 Apr 2012 05:55:00 GMT</pubDate><guid>http://www.shnenglu.com/chenglong7997/articles/170896.html</guid><wfw:comment>http://www.shnenglu.com/chenglong7997/comments/170896.html</wfw:comment><comments>http://www.shnenglu.com/chenglong7997/articles/170896.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/chenglong7997/comments/commentRss/170896.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/chenglong7997/services/trackbacks/170896.html</trackback:ping><description><![CDATA[<span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; text-align: -webkit-left; background-color: #ffffff; "> 鑻ユ兂瀹炵幇涓涓悎鏍奸噸鍐欐柟娉曪紝鑰屼笉鏄噸杞斤紝閭d箞蹇呴』鍚屾椂婊¤凍涓嬮潰鐨勮姹傦紒 </span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; text-align: -webkit-left; background-color: #ffffff; " /><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; text-align: -webkit-left; background-color: #ffffff; " /><span style="color: #0000ff; font-family: Tahoma; font-size: 12px; line-height: normal; text-align: -webkit-left; background-color: #ffffff; ">A銆侀噸鍐欒鍒欎箣涓錛?/span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; text-align: -webkit-left; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; text-align: -webkit-left; background-color: #ffffff; ">    閲嶅啓鏂規硶涓嶈兘姣旇閲嶅啓鏂規硶闄愬埗鏈夋洿涓ユ牸鐨勮闂駭鍒?nbsp;</span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; text-align: -webkit-left; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; text-align: -webkit-left; background-color: #ffffff; ">錛堜絾鏄彲浠ユ洿騫挎硾錛屾瘮濡傜埗綾繪柟娉曟槸鍖呰闂潈闄愶紝瀛愮被鐨勯噸鍐欐柟娉曟槸public璁塊棶鏉冮檺銆傦級 姣斿錛歄bject綾繪湁涓猼oString()鏂規硶錛屽紑濮嬮噸鍐欒繖涓柟娉曠殑鏃跺欐垜浠誨鏄撳繕璁皃ublic淇グ絎︼紝緙栬瘧鍣ㄥ綋鐒朵笉浼氭斁榪囦換浣曟暀璁垜浠?鐨勬満浼氥傚嚭閿欑殑鍘熷洜灝辨槸錛氭病鏈夊姞浠諱綍璁塊棶淇グ絎︾殑鏂規硶鍏鋒湁鍖呰闂潈闄愶紝鍖呰闂潈闄愭瘮public褰撶劧瑕佷弗鏍間簡錛屾墍浠ョ紪璇戝櫒浼氭姤閿欑殑銆?nbsp;</span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; text-align: -webkit-left; background-color: #ffffff; " /><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; text-align: -webkit-left; background-color: #ffffff; " /><span style="color: #0000ff; font-family: Tahoma; font-size: 12px; line-height: normal; text-align: -webkit-left; background-color: #ffffff; ">B銆侀噸鍐欒鍒欎箣浜?/span><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; text-align: -webkit-left; background-color: #ffffff; ">錛?/span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; text-align: -webkit-left; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; text-align: -webkit-left; background-color: #ffffff; ">   鍙傛暟鍒楄〃蹇呴』涓庤閲嶅啓鏂規硶鐨勭浉鍚屻?nbsp;</span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; text-align: -webkit-left; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; text-align: -webkit-left; background-color: #ffffff; ">閲嶅啓鏈変釜瀛敓鐨勫紵寮熷彨閲嶈澆錛屼篃灝辨槸鍚庨潰瑕佸嚭鍦虹殑銆傚鏋滃瓙綾繪柟娉曠殑鍙傛暟涓庣埗綾誨搴旂殑鏂規硶涓嶅悓錛岄偅涔堝氨鏄綘璁ら敊浜轟簡錛岄偅鏄噸杞斤紝涓嶆槸閲嶅啓銆?/span> <br /><br /><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; "><span style="color: #0000ff; ">C銆侀噸鍐欒鍒欎箣涓夛細</span><br />   榪斿洖綾誨瀷蹇呴』涓庤閲嶅啓鏂規硶鐨勮繑鍥炵被鍨嬬浉鍚屻?br />鐖剁被鏂規硶A錛歷oid eat(){} 瀛愮被鏂規硶B錛歩nt eat(){} 涓よ呰櫧鐒跺弬鏁扮浉鍚岋紝鍙槸榪斿洖綾誨瀷涓嶅悓錛屾墍浠ヤ笉鏄噸鍐欍?br />鐖剁被鏂規硶A錛歩nt eat(){} 瀛愮被鏂規硶B錛歭ong eat(){} 榪斿洖綾誨瀷铏界劧鍏煎鐖剁被錛屼絾鏄笉鍚屽氨鏄笉鍚岋紝鎵浠ヤ笉鏄噸鍐欍?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; "><span style="color: #0000ff; ">D銆侀噸鍐欒鍒欎箣鍥涳細</span><br />   閲嶅啓鏂規硶涓嶈兘鎶涘嚭鏂扮殑寮傚父鎴栬呮瘮琚噸鍐欐柟娉曞0鏄庣殑媯鏌ュ紓甯告洿騫跨殑媯鏌ュ紓甯搞備絾鏄彲浠ユ姏鍑烘洿灝戯紝鏇存湁闄愭垨鑰呬笉鎶涘嚭寮傚父銆?br />import java.io.*;<br />public class Test {<br />  public static void main (String[] args) {<br />   Animal h = new Horse();<br />   try {<br />     h.eat(); <br />   }<br />   catch (Exception e) {<br />   }<br /> }<br />}</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">class Animal {<br />  public void eat() throws Exception{<br />   System.out.println ("Animal is eating.");<br />   throw new Exception();<br />  }<br />}</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">class Horse extends Animal{<br />   public void eat() throws IOException{<br />    System.out.println ("Horse is eating.");<br />    throw new IOException();<br />  }<br />}<br /><br />榪欎釜渚嬪瓙涓紝鐖剁被鎶涘嚭浜嗘鏌ュ紓甯窫xception錛屽瓙綾繪姏鍑虹殑IOException鏄疎xception鐨勫瓙綾伙紝涔熷嵆鏄瘮琚噸鍐欑殑鏂規硶鎶涘嚭浜嗘洿鏈夐檺鐨勫紓甯革紝榪欐槸鍙互鐨勩傚鏋滃弽榪囨潵錛岀埗綾繪姏鍑篒OException錛屽瓙綾繪姏鍑烘洿涓哄娉涚殑Exception錛岄偅涔堜笉浼氶氳繃緙栬瘧鐨勩?br />娉ㄦ剰錛氳繖縐嶉檺鍒跺彧鏄拡瀵規鏌ュ紓甯革紝鑷充簬榪愯鏃跺紓甯窻untimeException鍙婂叾瀛愮被涓嶅啀榪欎釜闄愬埗涔嬩腑銆?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; "><span style="color: #0000ff; ">E銆侀噸鍐欒鍒欎箣浜旓細</span><br />   涓嶈兘閲嶅啓琚爣璇嗕負final鐨勬柟娉曘?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; "><span style="color: #0000ff; ">F銆侀噸鍐欒鍒欎箣鍏細</span><br />  濡傛灉涓涓柟娉曚笉鑳借緇ф壙錛屽垯涓嶈兘閲嶅啓瀹冦?br />姣旇緝鍏稿瀷鐨勫氨鏄埗綾葷殑private鏂規硶銆備笅渚嬩細浜х敓涓涓湁瓚g殑鐜拌薄銆?br />public class Test {<br />  public static void main (String[] args) {<br />   //Animal h = new Horse();<br />   Horse h = new Horse();<br />    h.eat();<br />   }<br />}</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">class Animal {<br />   private void eat(){<br />    System.out.println ("Animal is eating.");<br />    }<br /> }</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">class Horse extends Animal{<br />   public void eat(){<br />     System.out.println ("Horse is eating.");<br />   }<br />}<br />榪欐浠g爜鏄兘閫氳繃緙栬瘧鐨勩傝〃闈笂鐪嬫潵榪濆弽浜嗙鍏潯瑙勫垯錛屼絾瀹為檯涓婇偅鏄竴鐐瑰閥鍚堛侫nimal綾葷殑eat()鏂規硶涓嶈兘琚戶鎵匡紝鍥犳Horse綾諱腑鐨?eat()鏂規硶鏄竴涓叏鏂扮殑鏂規硶錛屼笉鏄噸鍐欎篃涓嶆槸閲嶈澆錛屽彧鏄竴涓彧灞炰簬Horse綾葷殑鍏ㄦ柊鐨勬柟娉曪紒榪欑偣璁╁緢澶氫漢榪鋒儜浜嗭紝浣嗘槸涔熶笉鏄偅涔堥毦浠ョ悊瑙c?br />main()鏂規硶濡傛灉鏄繖鏍鳳細<br />Animal h = new Horse();<br />//Horse h = new Horse();<br />h.eat();<br />緙栬瘧鍣ㄤ細鎶ラ敊錛屼負浠涔堝憿錛烪orse綾葷殑eat()鏂規硶鏄痯ublic鐨勫晩錛佸簲璇ュ彲浠ヨ皟鐢ㄥ晩錛佽鐗㈣錛屽鎬佸彧鐪嬬埗綾誨紩鐢ㄧ殑鏂規硶錛岃屼笉鐪嬪瓙綾誨璞$殑鏂規硶錛?/p><img src ="http://www.shnenglu.com/chenglong7997/aggbug/170896.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/chenglong7997/" target="_blank">Snape</a> 2012-04-11 13:55 <a href="http://www.shnenglu.com/chenglong7997/articles/170896.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>java鐨刵ullhttp://www.shnenglu.com/chenglong7997/articles/170895.htmlSnapeSnapeWed, 11 Apr 2012 05:51:00 GMThttp://www.shnenglu.com/chenglong7997/articles/170895.htmlhttp://www.shnenglu.com/chenglong7997/comments/170895.htmlhttp://www.shnenglu.com/chenglong7997/articles/170895.html#Feedback0http://www.shnenglu.com/chenglong7997/comments/commentRss/170895.htmlhttp://www.shnenglu.com/chenglong7997/services/trackbacks/170895.html涓銆乶ull鏄唬琛ㄤ笉紜畾鐨勫璞?/span>
        Java涓紝null鏄竴涓叧閿瓧錛岀敤鏉ユ爣璇嗕竴涓笉紜畾鐨勫璞°傚洜姝ゅ彲浠ュ皢null璧嬬粰寮曠敤綾誨瀷鍙橀噺錛屼絾涓嶅彲浠ュ皢null璧嬬粰鍩烘湰綾誨瀷鍙橀噺銆?/span>

    姣斿錛歩nt a = null;鏄敊璇殑銆侽jbect o = null鏄紜殑銆?/span>

      Java涓紝鍙橀噺閮介伒寰竴涓師鍒欙紝鍏堝畾涔夛紝騫朵笖鍒濆鍖栧悗錛屾墠鍙互浣跨敤銆傛垜浠笉鑳絠nt a鍚庯紝涓嶇粰a鎸囧畾鍊鹼紝灝卞幓鎵撳嵃a鐨勫箋?/span>
    榪欐潯瀵瑰浜庡紩鐢ㄧ被鍨嬪彉閲忎篃鏄傜敤鐨勩?/span>

       鏈夋椂鍊欙紝鎴戜滑瀹氫箟涓涓紩鐢ㄧ被鍨嬪彉閲忥紝鍦ㄥ垰寮濮嬬殑鏃跺欙紝鏃犳硶緇欏嚭涓涓‘瀹氱殑鍊鹼紝浣嗘槸涓嶆寚瀹氬鹼紝紼嬪簭鍙兘浼氬湪try璇彞鍧椾腑鍒濆鍖栧箋?/span>
        鎴戜滑涓嬮潰浣跨敤鍙橀噺鐨勬椂鍊欏氨浼氭姤閿欍傝繖鏃跺欙紝鍙互鍏堢粰鍙橀噺鎸囧畾涓涓猲ull鍊鹼紝闂灝辮В鍐充簡銆備緥濡傦細 
    Connection conn = null;
    try {
       conn = DriverManager.getConnection("url", "user", "password");
    } catch (SQLException e) {
       e.printStackTrace();
    }

    String catalog = conn.getCatalog();

    濡傛灉鍒氬紑濮嬬殑鏃跺欎笉鎸囧畾conn = null錛屽垯鏈鍚庝竴鍙ュ氨浼氭姤閿欍?br />
    浜屻乶ull鏈韓涓嶆槸瀵硅薄錛屼篃涓嶆槸Objcet鐨勫疄渚?br />
      null鏈韓铏界劧鑳戒唬琛ㄤ竴涓笉紜畾鐨勫璞★紝浣嗗氨null鏈韓鏉ヨ錛屽畠涓嶆槸瀵硅薄錛屼篃涓嶇煡閬撲粈涔堢被鍨嬶紝涔熶笉鏄痡ava.lang.Object鐨勫疄渚嬨?br />鍙互鍋氫竴涓畝鍗曠殑渚嬪瓙錛?br />
    //null鏄璞″悧? 灞炰簬Object綾誨瀷鍚?
    if (null instanceof java.lang.Object) {
      System.out.println("null灞炰簬java.lang.Object綾誨瀷");
    } else {
      System.out.println("null涓嶅睘浜巎ava.lang.Object綾誨瀷");
    }

    緇撴灉浼氳緭鍑猴細null涓嶅睘浜巎ava.lang.Object綾誨瀷

    涓夈丣ava榛樿緇欏彉閲忚祴鍊?br />
    鍦ㄥ畾涔夊彉閲忕殑鏃跺欙紝濡傛灉瀹氫箟鍚庢病鏈夌粰鍙橀噺璧嬪鹼紝鍒橨ava鍦ㄨ繍琛屾椂浼氳嚜鍔ㄧ粰鍙橀噺璧嬪箋?br />璧嬪煎師鍒欐槸鏁存暟綾誨瀷int銆乥yte銆乻hort銆?long鐨勮嚜鍔ㄨ祴鍊間負0錛屽甫灝忔暟鐐圭殑float銆乨ouble鑷姩璧嬪間負0.0錛?br />boolean鐨勮嚜鍔ㄨ祴鍊間負false錛屽叾浠栧悇渚涘紩鐢ㄧ被鍨嬪彉閲忚嚜鍔ㄨ祴鍊間負 null銆?br />榪欎釜鍏蜂綋鍙互閫氳繃璋冭瘯鏉ョ湅銆?br />
    鍥涖佸鍣ㄧ被鍨嬩笌null

    List錛氬厑璁擱噸澶嶅厓绱狅紝鍙互鍔犲叆浠繪剰澶氫釜null銆?br />Set錛氫笉鍏佽閲嶅鍏冪礌錛屾渶澶氬彲浠ュ姞鍏ヤ竴涓猲ull銆?br />Map錛歁ap鐨刱ey鏈澶氬彲浠ュ姞鍏ヤ竴涓猲ull錛寁alue瀛楁娌℃湁闄愬埗銆?br />鏁扮粍錛氬熀鏈被鍨嬫暟緇勶紝瀹氫箟鍚庯紝濡傛灉涓嶇粰瀹氬垵濮嬪鹼紝鍒檍ava榪愯鏃朵細鑷姩緇欏畾鍊箋?br />寮曠敤綾誨瀷鏁扮粍錛屼笉緇欏畾鍒濆鍊鹼紝鍒欐墍鏈夌殑鍏冪礌鍊間負null銆?br />
    浜斻乶ull鐨勫叾浠栦綔鐢?br />
    1銆佸垽鏂竴涓紩鐢ㄧ被鍨嬫暟鎹槸鍚ull銆?鐢?=鏉ュ垽鏂?br />2銆侀噴鏀懼唴瀛橈紝璁╀竴涓潪null鐨勫紩鐢ㄧ被鍨嬪彉閲忔寚鍚憂ull銆傝繖鏍瘋繖涓璞″氨涓嶅啀琚換浣曞璞″簲鐢ㄤ簡銆?br />絳夊緟JVM鍨冨溇鍥炴敹鏈哄埗鍘誨洖鏀躲?br />
    浠ヤ笅鏄垜鐨勪竴浜涙兂娉曪細
    package com.zac.expe1;

    public class NullInDepth {
       public static void helloThere(){
        System.out.println("Hello from null?!");
       }

       public static void main(String[] args) {
         //((NullInDepth)null).helloThere();
         NullInDepth nullIn = null;
         nullIn.helloThere();
         Object nullStr = null;
         NullInDepth nullOut = (NullInDepth) nullStr;
         System.out.println(nullIn);
       }

    }

    榪欓噷Hello from null?!浼氳鎵撳嵃鍑烘潵錛岃屽悗杈逛竴鍙ヤ細鎵撳嵃鍑簄ull錛?br />鎴戜滑鐭ラ亾println涓鑸槸璋冪敤瀵硅薄鐨則oString鏉ヨ繘琛屾墦鍗幫紝浣嗘槸null鏄庢樉涓嶆槸瀵硅薄錛?br />浣滀負涓涓笉紜畾寮曠敤瀹冨彧鏄妸鑷繁鐨刲iteral緇欐墦鍗頒簡鍑烘潵錛屽洜姝ゆ垜鐚滄祴null鏄鍏堝瓨鍌ㄥ湪鍐呭瓨涓殑涓涓紩鐢紝
    瀹冩槸鏈夊肩殑錛屽彲鑳芥牴鎹笉鍚岀殑jvm鏈変笉鍚岀殑瀹炵幇錛屼絾鏄痡vm涓細涓鑷村湴灝嗚繖涓兼墦鍗頒負null銆?/p>


    鍙﹀鎸夌収鎴戠殑鐚滄祴錛宯ull搴旇鏄爤閲岃竟鐨勪竴涓紩鐢紝null type鏄彲浠ヨ漿鎹負鎵鏈夊叾浠杢ype鐨勫紩鐢紝
    鎵浠ユ垜涔熺寽嫻媙ull type搴旇鏄墍鏈夊叾浠栧紩鐢ㄧ被鍨嬬殑瀛愮被鍨嬨?nbsp;
    闈欐佹柟娉曪紙涔熻闇瑕佹槸public鐨勶級搴旇鏄敱綾誨悕鏉ヨ皟鐢紝浣嗘槸涔熷彲浠ヤ嬌鐢?綾誨悕(null).闈欐佹柟娉曞悕鐨勬柟寮忚皟鐢ㄣ?/p>

    Snape 2012-04-11 13:51 鍙戣〃璇勮
    ]]>
    java嫻?娣卞鍒?/title><link>http://www.shnenglu.com/chenglong7997/articles/170893.html</link><dc:creator>Snape</dc:creator><author>Snape</author><pubDate>Wed, 11 Apr 2012 05:48:00 GMT</pubDate><guid>http://www.shnenglu.com/chenglong7997/articles/170893.html</guid><wfw:comment>http://www.shnenglu.com/chenglong7997/comments/170893.html</wfw:comment><comments>http://www.shnenglu.com/chenglong7997/articles/170893.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/chenglong7997/comments/commentRss/170893.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/chenglong7997/services/trackbacks/170893.html</trackback:ping><description><![CDATA[<p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; "><span style="color: #0000ff; ">⑴嫻呭鍒?嫻呭厠闅?</span><br />    琚鍒跺璞$殑鎵鏈夊彉閲忛兘鍚湁涓庡師鏉ョ殑瀵硅薄鐩稿悓鐨勫鹼紝鑰屾墍鏈夌殑瀵瑰叾浠栧璞$殑寮曠敤浠嶇劧鎸囧悜鍘熸潵鐨勫璞°傛崲璦涔嬶紝嫻呭鍒朵粎浠呭鍒舵墍鑰冭檻鐨勫璞★紝鑰屼笉澶嶅埗瀹冩墍寮曠敤鐨勫璞°?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; "><span style="color: #0000ff; ">⑵娣卞鍒?娣卞厠闅?</span><br />   琚鍒跺璞$殑鎵鏈夊彉閲忛兘鍚湁涓庡師鏉ョ殑瀵硅薄鐩稿悓鐨勫鹼紝闄ゅ幓閭d簺寮曠敤鍏朵粬瀵硅薄鐨勫彉閲忋傞偅浜涘紩鐢ㄥ叾浠栧璞$殑鍙橀噺灝嗘寚鍚戣澶嶅埗榪囩殑鏂板璞★紝鑰屼笉鍐嶆槸鍘熸湁鐨勯偅浜涜寮曠敤鐨勫璞°傛崲璦涔嬶紝娣卞鍒舵妸瑕佸鍒剁殑瀵硅薄鎵寮曠敤鐨勫璞¢兘澶嶅埗浜嗕竴閬嶃?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">Java鐨刢lone()鏂規硶</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">⑴clone鏂規硶灝嗗璞″鍒朵簡涓浠藉茍榪斿洖緇欒皟鐢ㄨ呫備竴鑸岃█錛宑lone()鏂規硶婊¤凍錛?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">①瀵逛換浣曠殑瀵硅薄x錛岄兘鏈墄.clone() !=x//鍏嬮殕瀵硅薄涓庡師瀵硅薄涓嶆槸鍚屼竴涓璞?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">②瀵逛換浣曠殑瀵硅薄x錛岄兘鏈墄.clone().getClass()= =x.getClass()//鍏嬮殕瀵硅薄涓庡師瀵硅薄鐨勭被鍨嬩竴鏍?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">③濡傛灉瀵硅薄x鐨別quals()鏂規硶瀹氫箟鎭板綋錛岄偅涔坸.clone().equals(x)搴旇鎴愮珛銆?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">⑵Java涓璞$殑鍏嬮殕</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">①涓轟簡鑾峰彇瀵硅薄鐨勪竴浠芥嫹璐濓紝鎴戜滑鍙互鍒╃敤Object綾葷殑clone()鏂規硶銆?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">②鍦ㄦ淳鐢熺被涓鐩栧熀綾葷殑clone()鏂規硶錛屽茍澹版槑涓簆ublic銆?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">③鍦ㄦ淳鐢熺被鐨刢lone()鏂規硶涓紝璋冪敤super.clone()銆?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">④鍦ㄦ淳鐢熺被涓疄鐜癈loneable鎺ュ彛銆?/p><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">璇風湅濡備笅浠g爜錛?/span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><pre style="color: #666666; font-size: 12px; line-height: normal; background-color: #ffffff; "> class Student implements Cloneable { String name; int age; Student(String name,int age) { this.name=name; this.age=age; } public Object clone() { Object o=null; try { o=(Student)super.clone();//Object涓殑clone()璇嗗埆鍑轟綘瑕佸鍒剁殑鏄摢涓 // 涓璞°? } catch(CloneNotSupportedException e) { System.out.println(e.toString()); } return o; } public static void main(String[] args) { Student s1=new Student("zhangsan",18); Student s2=(Student)s1.clone(); s2.name="lisi"; s2.age=20; System.out.println("name="+s1.name+","+"age="+s1.age);//淇敼瀛︾敓2鍚庯紝涓嶅獎鍝嶅鐢?鐨勫箋? } }<br />榪愯緇撴灉錛?br />C:\java>java Student<br />name=zhangsan,age=18<br /><br />璇存槑錛?/pre><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">①涓轟粈涔堟垜浠湪媧劇敓綾諱腑瑕嗙洊Object鐨刢lone()鏂規硶鏃訛紝涓瀹氳璋冪敤super.clone()鍛?鍦ㄨ繍琛屾椂鍒伙紝Object涓殑 clone()璇嗗埆鍑轟綘瑕佸鍒剁殑鏄摢涓涓璞★紝鐒跺悗涓烘瀵硅薄鍒嗛厤絀洪棿錛屽茍榪涜瀵硅薄鐨勫鍒訛紝灝嗗師濮嬪璞$殑鍐呭涓涓澶嶅埗鍒版柊瀵硅薄鐨勫瓨鍌ㄧ┖闂翠腑銆?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">②緇ф壙鑷猨ava.lang.Object綾葷殑clone()鏂規硶鏄祬澶嶅埗銆備互涓嬩唬鐮佸彲浠ヨ瘉鏄庝箣銆?/p><pre style="color: #666666; font-size: 12px; line-height: normal; background-color: #ffffff; "> class Professor { String name; int age; Professor(String name,int age) { this.name=name; this.age=age; } } public class Student implements Cloneable { String name;//甯擱噺瀵硅薄銆? int age; Professor p;//瀛︾敓1鍜屽鐢?鐨勫紩鐢ㄥ奸兘鏄竴鏍風殑銆? Student(String name,int age,Professor p) { this.name=name; this.age=age; this.p=p; } public Object clone() { Student o=null; try { o=(Student)super.clone(); } catch(CloneNotSupportedException e) { System.out.println(e.toString()); } return o; } public static void main(String[] args) { Professor p=new Professor("wangwu",50); Student s1=new Student("zhangsan",18,p); Student s2=(Student)s1.clone(); s2.p.name="lisi"; s2.p.age=30; System.out.println("name="+s1.p.name+","+"age="+s1.p.age);//瀛︾敓1鐨勬暀鎺堟垚涓簂isi,age涓?0銆? } }</pre><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">榪愯緇撴灉錛?/span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">C:\java>java Student</span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">name=lisi,age=30</span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">閭e簲璇ュ浣曞疄鐜版繁灞傛鐨勫厠闅嗭紝鍗充慨鏀箂2鐨勬暀鎺堜笉浼氬獎鍝峴1鐨勬暀鎺堬紝浠g爜鏀硅繘濡備笅銆?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">鏀硅繘浣垮鐢?鐨凱rofessor涓嶆敼鍙?娣卞眰嬈$殑鍏嬮殕)</p><pre style="color: #666666; font-size: 12px; line-height: normal; background-color: #ffffff; "> class Professor implements Cloneable { String name; int age; Professor(String name,int age) { this.name=name; this.age=age; } public Object clone() { Object o=null; try { o=super.clone(); } catch(CloneNotSupportedException e) { System.out.println(e.toString()); } return o; } } public class Student implements Cloneable { String name; int age; Professor p; Student(String name,int age,Professor p) { this.name=name; this.age=age; this.p=p; } public Object clone() { Student o=null; try { o=(Student)super.clone(); } catch(CloneNotSupportedException e) { System.out.println(e.toString()); } o.p=(Professor)p.clone(); return o; } public static void main(String[] args) { Professor p=new Professor("wangwu",50); Student s1=new Student("zhangsan",18,p); Student s2=(Student)s1.clone(); s2.p.name="lisi"; s2.p.age=30; System.out.println("name="+s1.p.name+","+"age="+s1.p.age);//瀛︾敓1鐨勬暀鎺堜笉鏀瑰彉銆? } } </pre><p style="color: #0000ff; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">3.鍒╃敤涓茶鍖栨潵鍋氭繁澶嶅埗</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">  鎶婂璞″啓鍒版祦閲岀殑榪囩▼鏄覆琛屽寲(Serilization)榪囩▼錛屼絾鏄湪Java紼嬪簭甯堝湀瀛愰噷鍙堥潪甯稿艦璞″湴縐頒負“鍐峰喕”鎴栬?#8220;鑵屽捀鑿?(picking)”榪囩▼;鑰屾妸瀵硅薄浠庢祦涓鍑烘潵鐨勫茍琛屽寲(Deserialization)榪囩▼鍒欏彨鍋?#8220;瑙e喕”鎴栬?#8220;鍥為矞(depicking)”榪囩▼銆傚簲褰撴寚鍑虹殑鏄紝鍐欏湪嫻侀噷鐨勬槸瀵硅薄鐨勪竴涓嫹璐濓紝鑰屽師瀵硅薄浠嶇劧瀛樺湪浜嶫VM閲岄潰錛屽洜姝?#8220;鑵屾垚鍜歌彍”鐨勫彧鏄璞$殑涓涓嫹璐濓紝Java鍜歌彍榪樺彲浠ュ洖椴溿?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">鍦↗ava璇█閲屾繁澶嶅埗涓涓璞★紝甯稿父鍙互鍏堜嬌瀵硅薄瀹炵幇Serializable鎺ュ彛錛岀劧鍚庢妸瀵硅薄(瀹為檯涓婂彧鏄璞$殑涓涓嫹璐?鍐欏埌涓涓祦閲?鑵屾垚鍜歌彍)錛屽啀浠庢祦閲岃鍑烘潵(鎶婂捀鑿滃洖椴?錛屼究鍙互閲嶅緩瀵硅薄銆?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">濡備笅涓烘繁澶嶅埗婧愪唬鐮併?/p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">public Object deepClone() <br />{ <br />  //灝嗗璞″啓鍒版祦閲?nbsp;<br />  ByteArrayOutputStream bo=new ByteArrayOutputStream(); <br />  ObjectOutputStream oo=new ObjectOutputStream(bo); <br />  oo.writeObject(this); <br /><br />  //浠庢祦閲岃鍑烘潵 <br />  ByteArrayInputStream bi=new ByteArrayInputStream(bo.toByteArray()); <br />  ObjectInputStream oi=new ObjectInputStream(bi); <br />  return(oi.readObject()); <br />}</p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">榪欐牱鍋氱殑鍓嶆彁鏄璞′互鍙婂璞″唴閮ㄦ墍鏈夊紩鐢ㄥ埌鐨勫璞¢兘鏄彲涓茶鍖栫殑錛屽惁鍒欙紝灝遍渶瑕佷粩緇嗚冨療閭d簺涓嶅彲涓茶鍖栫殑瀵硅薄鍙惁璁炬垚transient錛屼粠鑰屽皢涔嬫帓闄ゅ湪澶嶅埗榪囩▼涔嬪銆備笂渚嬩唬鐮佹敼榪涘涓嬨?br /></p><pre style="color: #666666; font-size: 12px; line-height: normal; background-color: #ffffff; ">import java.io.*; class Professor implements Serializable { String name; int age; Professor(String name,int age) { this.name=name; this.age=age; } } public class Student implements Serializable { String name;//甯擱噺瀵硅薄銆? int age; Professor p;//瀛︾敓1鍜屽鐢?鐨勫紩鐢ㄥ奸兘鏄竴鏍風殑銆? Student(String name,int age,Professor p) { this.name=name; this.age=age; this.p=p; } public Object deepClone() throws IOException, OptionalDataException,ClassNotFoundException { //灝嗗璞″啓鍒版祦閲? ByteArrayOutputStream bo=new ByteArrayOutputStream(); ObjectOutputStream oo=new ObjectOutputStream(bo); oo.writeObject(this); //浠庢祦閲岃鍑烘潵 ByteArrayInputStream bi=new ByteArrayInputStream(bo.toByteArray()); ObjectInputStream oi=new ObjectInputStream(bi); return(oi.readObject()); } public static void main(String[] args) throws IOException,ClassNotFoundException { Professor p=new Professor("wangwu",50); Student s1=new Student("zhangsan",18,p); Student s2=(Student)s1.deepClone(); s2.p.name="lisi"; s2.p.age=30; System.out.println("name="+s1.p.name+","+"age="+s1.p.age); //瀛︾敓1鐨勬暀鎺堜笉鏀瑰彉銆? } }</pre><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; "></p><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">榪愯緇撴灉錛?/span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">C:\java>java Student</span><br style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; " /><span style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">name=wangwu,age=50</span> <img src ="http://www.shnenglu.com/chenglong7997/aggbug/170893.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/chenglong7997/" target="_blank">Snape</a> 2012-04-11 13:48 <a href="http://www.shnenglu.com/chenglong7997/articles/170893.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Java紼嬪簭鏄撻伃鍙楅嗗悜宸ョ▼鏀誨嚮鐨勫師鍥?/title><link>http://www.shnenglu.com/chenglong7997/articles/170892.html</link><dc:creator>Snape</dc:creator><author>Snape</author><pubDate>Wed, 11 Apr 2012 05:43:00 GMT</pubDate><guid>http://www.shnenglu.com/chenglong7997/articles/170892.html</guid><wfw:comment>http://www.shnenglu.com/chenglong7997/comments/170892.html</wfw:comment><comments>http://www.shnenglu.com/chenglong7997/articles/170892.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/chenglong7997/comments/commentRss/170892.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/chenglong7997/services/trackbacks/170892.html</trackback:ping><description><![CDATA[<div> Java搴旂敤紼嬪簭铏界劧鑳藉“緙栧啓涓嬈★紝闅忓榪愯”錛圵rite Once, Run Anywhere錛夋槸涓涓法澶х殑浼樺娍錛屼絾榪欑鐜鐨勬灦鏋勬柟寮忎嬌鍏惰繙姣旀湰鏈哄簲鐢ㄧ▼搴忔洿瀹規槗琚粦瀹㈣繘琛岄嗗悜宸ョ▼銆傝繖鎰忓懗鐫寮鍙戜漢鍛橀潰涓寸潃澶卞幓鐭ヨ瘑浜ф潈鐨勯潪甯哥湡瀹炵殑鍗遍櫓銆傚熀浜庡簲鐢ㄧ▼搴忕殑铏氭嫙鏈烘瘮鏈満搴旂敤紼嬪簭鏇村鏄撻嗗悜宸ョ▼鐨勫師鍥犳湁寰堝錛?/div><div><span style="color: red; ">JVM鏄紑婧愮殑</span><br />  Sun宸茬粡鍏嶈垂鎻愪緵JVM鐨勬簮浠g爜銆傝繖浣垮緱榛戝鍙渶鏌ョ湅浠g爜鍗沖彲寮勬竻铏氭嫙鏈虹殑宸ヤ綔鏂瑰紡銆?/div><div>Java .class鏂囦歡鏍煎紡鏄彲鍏紑鑾峰彇鐨?br />濡傚墠鎵榪幫紝Java婧愪唬鐮佽緙栬瘧鎴愬瓧鑺傜爜錛岃屽瓧鑺傜爜瀛樺偍鍦↗ava .class鏂囦歡涓侸ava .class鏂囦歡鏍煎紡鐨勮鑼冩槸鍙叕寮鑾峰彇鐨勶紝鍥犳鏈夋妧鏈儗鏅殑浠諱綍浜洪兘鑳藉鏄撳湴緙栧啓鍙互澶勭悊銆佷慨鏀規垨杞崲.class鏂囦歡鐨勫伐鍏楓?/div><div><span style="color: red; ">JVM鏄蔣浠訛紝鑰屼笉鏄‖浠?/span></div><div>   涓庨渶瑕佺悊瑙g壒瀹氬鐞嗗櫒鐨勪笓瀹朵嬌鐢ㄧ殑鏍囧噯緙栫▼璇█涓嶅悓錛孞VM鏄竴涓簲鐢ㄧ▼搴忥紝瀹冨鍚屽井澶勭悊鍣ㄤ竴鏍瘋繍浣滐紝騫朵嬌鐢ㄦ搷浣滅郴緇熷拰璁$畻鏈虹‖浠舵彁渚涚殑鍐呯疆鍔熻兘銆傜敱浜庨粦瀹笉蹇呮繁鍏ュ埌紜歡綰у埆錛屽洜姝ゆ洿瀹規槗鍙栧緱瀵笿VM鐨勫畬鍏ㄦ帶鍒躲?/div><div>   鍥犳錛屼緥濡傚湪浣跨敤鏍囧噯鏈満緋葷粺寮鍙戣璦榪涜璋冭瘯鏃訛紝鏆傚仠澶勭悊鍣ㄦ瀬涓哄洶闅撅紝闇瑕佸叿澶囧鐞嗗櫒銆佽皟璇曞姛鑳藉強鍙敤鐜皟璇曞櫒鐨勪笓瀹剁煡璇嗐備絾鏄紝鐢變簬JVM 榪愯鐜鐨勬簮浠g爜鏄彲鍏紑鑾峰彇鐨勶紝鍥犳寮鍙戜漢鍛樺彲浠ヨ交鏉懼湴寤虹珛鑷繁鐨勮櫄鎷熸満鏉ュ畬鍏ㄦ帶鍒惰櫄鎷熷鐞嗗櫒鐨勫悇涓柟闈€傝繖鏍峰彲浠ュ鏄撳湴鍒嗘瀽榪愯鐜涓繍琛岀殑姣忎釜搴旂敤紼嬪簭銆?/div><div><span style="color: red; ">Java鐨勬寚浠ゆ瘮鏈満浠g爜灝?/span></div><div>   鐒惰岋紝JVM浠g爜鏄撲簬榪涜鍙嶅悜宸ョ▼鐨勫彟涓涓師鍥犳槸瀹冨叿鏈夋瘮鏈湴搴旂敤紼嬪簭鏇村皯鐨勬寚浠ゃ傝繖鏄嚭浜庢ц兘鑰冭檻銆侸VM鐨勪嬌鐢ㄥ湪搴旂敤紼嬪簭鍜屾湰鏈哄鐞嗗櫒涔嬮棿澧炲姞浜嗕竴涓蔣浠跺眰錛岃繖浼氬鎬ц兘浜х敓璐熼潰褰卞搷銆傝櫧鐒剁幇浠e鐞嗗櫒涓嶆柇鎻愰珮鐨勬墽琛岄熷害鏈緇堝皢緙撹В榪欎竴闂錛屼絾榪欎竴闂浠嶇劧寰堟槑鏄俱傝櫄鎷熸満寮鍙戜漢鍛樻彁楂樻墽琛岄熷害鐨勪竴縐嶆柟娉曟槸浣跨敤姣旀湰鏈哄鐞嗗櫒姹囩紪紼嬪簭鏇村皬鐨勫瓧鑺傜爜鎸囦護闆嗐傛湰鏈哄簲鐢ㄧ▼搴忓彲鑳藉寘鍚杈?00鏉℃寚浠わ紝鑰孞ava搴旂敤紼嬪簭閫氬父浣跨敤涓嶈秴榪?00鏉$殑鎸囦護銆傛洿灝戠殑鎸囦護鎰忓懗鐫榛戝鍙互鏇村揩鍦板垎鏋愪唬鐮佷互榪涜閫嗗悜宸ョ▼銆傝繖浜涚壒鎬т嬌寰楄櫄鎷熸満榪滄瘮鍏跺畠綾誨瀷鐨勫簲鐢ㄧ▼搴忔洿瀹規槗閬彈閫嗗悜宸ョ▼鏀誨嚮銆?/div><div><span style="color: red; ">絎笁鏂瑰弽姹囩紪紼嬪簭澧炲姞浜嗘紡媧?/span></div><div> 涓嶄粎鏄疛VM鏈韓瀹規槗閬彈閫嗗悜宸ョ▼鏀誨嚮錛屽晢涓氬拰鍏嶈垂鐨凧ava瀛楄妭鐮佸弽姹囩紪紼嬪簭涔熻秺鏉ヨ秺澶氾紝浠庤岃繘涓姝ョ畝鍖栦簡浠g爜閫嗗悜宸ョ▼鐨勮繃紼嬨侷DA鍜孍clipse瀛楄妭鐮佹彃浠舵槸浼楀Java瀛楄妭鐮佸弽姹囩紪紼嬪簭涓殑涓ょ銆備綔涓哄晢涓氫駭鍝侊紝IDA鏄竴縐嶆櫘閬嶇殑鍙嶆眹緙栫▼搴忥紝鍙敤浜庤澶氫笉鍚岀殑澶勭悊鍣紝鍖呮嫭80x86鍜孧IPS銆侲clipse瀛楄妭鐮佹彃浠舵槸鍏嶈垂杞歡銆傚畠鑳藉鍙嶇紪璇慗ava .class鏂囦歡鐨勫瓧鑺傜爜騫朵互閫傚綋鐨勯『搴忔樉紺烘墍鏈夋搷浣滅爜鎸囦護銆?nbsp;灝界榪欎簺浜у搧涓嶅ぇ鍙兘浠庡瓧鑺傜爜瀹岀編鍦版仮澶嶅師濮嬩唬鐮侊紝浣嗗畠浠仮澶嶇殑婧愪唬鐮佸皢絳夊悓浜庡師濮嬩唬鐮侊紝騫朵笖姣斿瓧鑺傜爜鏇村叿鍙鎬с備竴鏃︽仮澶嶄簡婧愪唬鐮侊紝鏀誨嚮鑰呭彲浠ュ鏄撳湴鍒犻櫎閮ㄥ垎浠g爜騫跺皢鍏墮潪娉曞湴鐢ㄤ簬绔炰簤瀵規墜鐨勫簲鐢ㄧ▼搴忎腑錛屾垨鍦?class鏂囦歡涓畾浣嶆墦琛ヤ竵銆?/div><div></div><div>鍥?鎻愪緵浜嗛粦瀹㈠彲鑳藉浣曞湪.class鏂囦歡涓墦琛ヤ竵鐨勪竴涓ず渚嬨傚睆騫曠殑涓婂崐閮ㄥ垎鏄劇ず浜嗕竴灝忔Java婧愪唬鐮併傚睆騫曠殑涓嬪崐閮ㄥ垎鏄劇ず浜嗗瓧鑺傜爜鍙嶆眹緙栫殑杈撳嚭錛屼篃灝辨槸涓涓瓧鑺傜爜鎸囦護鍒楄〃銆傛爣璁頒負綰㈣壊鐨勫尯鍩熸槸婧愪唬鐮佷腑IF緇撴瀯鐨勫搴旀寚浠ゃ傚瓧鑺傜爜鎸囦護“LCMP”鐨勫崄鍏繘鍒惰〃紺轟負0x94銆傝宸ュ叿榪樻寚鍑轟簡鎿嶄綔鐮佸湪.class鏂囦歡涓殑浣嶇疆銆傛湁浜嗚繖浜涗俊鎭紝榛戝鍙互浣跨敤綆鍗曠殑鍗佸叚榪涘埗緙栬緫鍣ㄦ潵鏀瑰彉璇F鍒嗘敮錛岃岃繖鍙渶涓嶅埌涓鍒嗛挓鐨勬椂闂淬傚亣璁捐IF鏉′歡鐢ㄤ簬璁稿彲璇佹鏌ワ紝榛戝鍙掔疆璇ユ潯浠訛紝鎸囩ず鍗充嬌鍦ㄨ鍙瘉琚獙璇佷負鏃犳晥錛堝宸茶繃鏈燂級鐨勬儏鍐典笅浠嶈繑鍥?#8220;True”錛屼粠鑰岀獊鐮磋鍙瘉媯鏌ャ傚湪榪欑鎯呭喌涓嬶紝榛戝浣跨敤涓涓瓧鑺傜殑琛ヤ竵鍗沖彲瀹屾垚鎵鏈夊伐浣溿傝櫧鐒跺ぇ澶氭暟搴旂敤紼嬪簭閮芥瘮榪欎釜紺轟緥鏇村姞澶嶆潅錛屼絾鍗充嬌鍦ㄥ鏉傜殑搴旂敤紼嬪簭涓紝瀛楄妭鐮佷篃闈炲父綆鍗曞茍涓斿鏄撶悊瑙c?/div><div></div><div> Java搴旂敤紼嬪簭铏界劧鑳藉“緙栧啓涓嬈★紝闅忓榪愯”錛圵rite Once, Run Anywhere錛夋槸涓涓法澶х殑浼樺娍錛屼絾榪欑鐜鐨勬灦鏋勬柟寮忎嬌鍏惰繙姣旀湰鏈哄簲鐢ㄧ▼搴忔洿瀹規槗琚粦瀹㈣繘琛岄嗗悜宸ョ▼銆傝繖鎰忓懗鐫寮鍙戜漢鍛橀潰涓寸潃澶卞幓鐭ヨ瘑浜ф潈鐨勯潪甯哥湡瀹炵殑鍗遍櫓銆傚熀浜庡簲鐢ㄧ▼搴忕殑铏氭嫙鏈烘瘮鏈満搴旂敤紼嬪簭鏇村鏄撻嗗悜宸ョ▼鐨勫師鍥犳湁寰堝錛?/div><div></div><div><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; "><img src="http://www.java3z.com/cwbwebhome/article/article8/img7/161822209.jpg" width="392" height="279" alt="" /></p><p style="color: #666666; font-family: Tahoma; font-size: 12px; line-height: normal; background-color: #ffffff; ">鍥? - 鐢ㄤ簬瀛楄妭鐮佸弽姹囩紪鐨凟clipse瀛楄妭鐮佹彃浠?/p></div><div></div><div></div><img src ="http://www.shnenglu.com/chenglong7997/aggbug/170892.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/chenglong7997/" target="_blank">Snape</a> 2012-04-11 13:43 <a href="http://www.shnenglu.com/chenglong7997/articles/170892.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Java鍩烘湰鍔熲斺擱eferencehttp://www.shnenglu.com/chenglong7997/articles/170891.htmlSnapeSnapeWed, 11 Apr 2012 05:30:00 GMThttp://www.shnenglu.com/chenglong7997/articles/170891.htmlhttp://www.shnenglu.com/chenglong7997/comments/170891.htmlhttp://www.shnenglu.com/chenglong7997/articles/170891.html#Feedback0http://www.shnenglu.com/chenglong7997/comments/commentRss/170891.htmlhttp://www.shnenglu.com/chenglong7997/services/trackbacks/170891.html 榪欐槸涓綃囦竴騫村涔嬪墠渚垮凡鍐欏氨鐨勬枃绔狅紝閭f椂錛屽洜涓哄緢澶欽ava紼嬪簭鍛樺彧姹傝拷闅忔柊鐢熺殑浜嬬墿錛屽嵈榪炲熀鏈殑姒傚康閮芥病鏈夛紝寰堝璁ㄨ涓紝寰堟槑鏄炬槸鍩烘湰鍔熶笉榪囩‖錛屼簬鏄悓鐢熷啓涓涓郴鍒楁枃绔狅紝璁ㄨJava鐨勫熀鏈姛錛屼笅闈究鏄湪榪欎釜鎯蟲硶涓嬪偓鐢熷嚭鐨勭涓綃囨枃绔犮傚彲浜嬪疄涓婏紝鐪熸瀹屾垚鐨勪篃鍙湁榪欎竴綃囥傚洜涓烘湭鑳藉強鏃跺彂甯冿紝瀹冨氨琚垜閬楀繕鍦ㄧ‖鐩樼殑瑙掕惤涓備粖澶╋紝JavaEye涓婂叧浜嶫ava浼犲艱繕鏄紶寮曠敤鐨勮鎴樿鎴戣璧蜂簡鑷繁鏇劇粡鍐欒繃鐨勮繖綃囨枃绔狅紝鎰夸笌澶у鍏變韓銆?/p>

    Java鍩烘湰鍔?#8212;—Reference

    鏈夎繖鏍蜂竴縐嶈娉曪紝濡備粖浜夐攱浜嶪T鎴樺満鐨勪袱澶у娍鍔涳紝MS涓鏃忓亸閲嶄簬搴曞眰瀹炵幇錛孞ava涓鏃忓亸閲嶄簬緋葷粺鏋舵瀯銆傝娉曟牴鎹棤浠庤冭瘉錛屼絾浠庝袱澶у娍鍔涘悇鑷殑紺懼尯鍔涢噺鍜屽浘涔﹀競鍦哄凡鏈変匠浣滀笉闅劇湅鍑猴紝姝よ娉曚笉铏氥備簬鏄紝浜嬫儏鐨勫彟涓闈㈣浜哄拷鐣ヤ簡銆?br />鍋忓閥錛屾垜鏄竴涓枩嬈㈡帰絀跺簳灞傚疄鐜扮殑Java紼嬪簭鍛橈紝铏界劧鎴戠殑鍠滃ソ騫墮潪綰鍜栧暋錛屽墤璧板亸閿嬪嵈鍒槸涓鐣鍛熾?/p>

    Reference
    Java涓栫晫娉板北鍖楁枟綰уぇ浣溿奣hinking In Java銆嬪垏鍏ava灝辨彁鍑?#8220;Everything is Object”銆傚湪Java榪欎釜鍏呮弧Object鐨勪笘鐣屼腑錛宺eference鏄竴鍒囪皽棰樼殑鏍規簮錛屾墍鏈夌殑鏁呬簨閮芥槸浠庤繖閲屽紑濮嬬殑銆?/p>

    Reference鏄粈涔堬紵
    濡傛灉浣犲拰鎴戜竴鏍峰湪榪涘叆Java涓栫晫涔嬪墠鏇劇粡嫻抗浜嶤/C++涓栫晫錛屽氨涓瀹氫笉浼氬鎸囬拡闄岀敓銆傝皥鍒版寚閽堬紝寰鏃ョ縐嶄笉鍫洖棣栫殑緇忓巻涓涓嬪瓙娑屼笂蹇冨ご錛岃繖閲屼笉鏄姳鎬ㄧ殑鍦版柟錛岃鎴戜滑鏆傛椂蹇樿鎸囬拡鐨勭棝鑻︼紝鍥炲繂涓涓嬫渶鍒濇帴瑙︽寚閽堢殑鐢滆湝鍚э紒榪樿寰椾綘鐪嬭繃鐨勬暀縐戜功涓紝濡備綍璁茶В鎸囬拡鍚楋紵鐣欏湪鎴戝嵃璞′腑鐨勪竴縐嶈娉曟槸錛屾寚閽堝氨鏄湴鍧錛屽鍚岄棬鐗屽彿鐮佷竴鏍鳳紝鏈変簡鍦板潃錛屼綘鍙互杞昏屾槗涓炬壘鍒頒竴涓漢瀹訛紝鑰屼笉蹇呰垂灝藉績鍔涚殑澶ф搗鎹為拡銆?br />C++鐧諱笂鍘嗗彶鑸炲彴錛宺eference涔熼殢涔嬭屾潵錛屽鎴戦棶涓皬闂錛屾寚閽堝拰reference鍖哄埆浣曞湪錛熸垜鐨勭瓟妗堟潵鑷簬鍦–++涓栫晫浜獕鐩涘悕鐨勩奙ore Effective C++銆嬨?/p>

    1. 娌℃湁null reference銆?/li>
    2. reference蹇呴』鏈夊垵鍊箋?/li>
    3. 浣跨敤reference瑕佹瘮浣跨敤鎸囬拡鏁堢巼楂樸傚洜涓簉eference涓嶉渶瑕佹祴璇曞叾鏈夋晥鎬с?/li>
    4. 鎸囬拡鍙互閲嶆柊璧嬪鹼紝鑰宺eference鎬繪槸鎸囧悜瀹冩渶鍒濊幏寰楃殑瀵硅薄

    璁捐閫夋嫨錛?/strong>
    褰撲綘鎸囧悜浣犻渶瑕佹寚鍚戠殑鏌愪釜涓滆タ錛岃屼笖緇濅笉浼氭敼鎸囧悜鍏跺畠涓滆タ錛屾垨鏄綋浣犲疄浣滀竴涓繍綆楃鑰屽叾璇硶闇瑕佹棤娉曟湁鎸囬拡杈炬垚錛屼綘灝卞簲璇ラ夋嫨reference銆傚叾瀹冧換浣曟椂鍊欙紝璇烽噰鐢ㄦ寚閽堛?/p>

    榪欏拰Java鏈変粈涔堝叧緋伙紵
    鍒濆Java錛岄壌浜巖eference鐨勫悕縐幫紝鎴戞涓嶇姽璞殑灝嗗畠鍜孋++涓殑reference絳夊悓璧鋒潵銆備笉榪囷紝鎴戦敊浜嗐傚湪Java涓紝reference鍙互闅忓績鎵嬈茬殑璧嬪肩疆絀猴紝瀵規瘮涓涓嬩笂闈㈠垪鍑虹殑宸紓錛屽氨涓嶉毦鍙戠幇錛孞ava鐨剅eference濡傛灉瑕佷笌C/C++瀵瑰簲錛屽畠涓嶈繃鏄竴涓┛鐫reference澶栬。鐨勬寚閽堣屽凡銆?br />浜庢槸錛屾墍鏈夊叧浜嶤涓叧浜庢寚閽堢殑鐞嗚В鏂瑰紡錛屽彲浠ョ収鎼埌Java涓紝綆鑰岃█涔嬶紝reference灝辨槸涓涓湴鍧銆傛垜浠彲浠ユ妸瀹冩兂璞℃垚涓涓妸鎵嬶紝鎶撲綇瀹冿紝灝辨姄浣忎簡鎴戜滑鎯寵鎿嶇旱鐨勬暟鎹傚鍚屾帉鎻鐨勫叧閿湪浜庢帉鎻℃寚閽堬紝鎺㈢儲Java鐨勯挜鍖欏氨鏄痳eference銆?/p>

    涓孌靛皬紼嬪簭
    鎴戠煡閬擄紝澶鐨勬枃瀛楁繪槸浠や漢鐘洶錛岄偅灝辨潵孌典唬鐮佸惂錛?br />public class ReferenceTricks {
      public static void main(String[] args) {
        ReferenceTricks r = new ReferenceTricks();
        // reset integer
        r.i = 0;
        System.out.println("Before changeInteger:" + r.i);
        changeInteger(r);
        System.out.println("After changeInteger:" + r.i);

        // just for format
        System.out.println();
      
        // reset integer
        r.i = 0;
        System.out.println("Before changeReference:" + r.i);
        changeReference(r);
        System.out.println("After changeReference:" + r.i);
      }

      private static void changeReference(ReferenceTricks r) {
       r = new ReferenceTricks();
       r.i = 5;
       System.out.println("In changeReference: " + r.i);
      }

      private static void changeInteger(ReferenceTricks r) {
       r.i = 5;
       System.out.println("In changeInteger:" + r.i);
      }

      public int i;
    }

    瀵逛笉璧鳳紝鎴戠煡閬擄紝鎶婁竴涓瓧孌佃鎴恜ublic鏄竴縐嶄笉濂界殑緙栫爜涔犳儻錛岃繖閲屽彧鏄負浜嗚鏄庨棶棰樸?br />濡傛灉浣犳湁鍏磋叮鑷繁榪愯涓涓嬭繖涓▼搴忥紝鎴戠瓑浣狅紒

    OK錛屼綘宸茬粡榪愯榪囦簡鍚楋紵緇撴灉濡備綍錛熸槸鍚﹀浣犻鏈燂紵涓嬮潰鏄垜鍦ㄨ嚜宸辯殑鏈哄櫒涓婅繍琛岀殑緇撴灉錛?br />Before changeInteger:0
    In changeInteger:5
    After changeInteger:5

    Before changeReference:0
    In changeReference: 5
    After changeReference:0
    榪欓噷錛屾垜浠叧娉ㄧ殑鏄袱涓猚hange——changeReference鍜宑hangeInteger銆備粠杈撳嚭鐨勫唴瀹逛腑錛屾垜浠彲浠ョ湅鍑猴紝涓や釜鏂規硶鍦ㄨ皟鐢ㄥ墠鍜岃皟鐢ㄤ腑瀹屽叏涓鏍鳳紝宸紓鍑虹幇鍦ㄨ皟鐢ㄥ悗鐨勭粨鏋溿?/p>

    緋婃秱鐨勮瑙?br />鍏堣鎴戜滑鏉ュ垎鏋愪竴涓媍hangeInteger鐨勮涓恒?br />鍓嶉潰璇磋繃浜嗭紝Java涓殑reference灝辨槸涓涓湴鍧錛屽畠鎸囧悜浜嗕竴涓唴瀛樼┖闂達紝榪欎釜絀洪棿瀛樻斁鐫涓涓璞$殑鐩稿叧淇℃伅銆傝繖閲屾垜浠殏鏃朵笉鍘誨叧蹇冭繖涓唴瀛樺叿浣撳浣曟帓甯冿紝鍙鐭ラ亾錛岄氳繃鍦板潃錛屾垜浠彲浠ユ壘鍒皉榪欎釜瀵硅薄鐨刬瀛楁錛岀劧鍚庢垜浠粰瀹冭祴鎴?銆傛棦鐒惰繖涓瓧孌電殑鍐呭寰楀埌浜嗕慨鏀癸紝浠庡嚱鏁頒腑榪斿洖涔嬪悗錛屽畠鑷劧灝辨槸鏀瑰姩鍚庣殑緇撴灉浜嗭紝鎵浠ヨ皟鐢ㄤ箣鍚庯紝r瀵硅薄鐨刬瀛楁渚濈劧鏄?銆備笅鍥懼睍紺轟簡changeInteger璋冪敤鍓嶅悗鍐呭瓨鍙樺寲銆?/p>

         Reference +--------+                Reference +--------+
        ---------->| i = 0  |               ---------->| i = 5  |
                   |--------|                          |--------|
                   | Memory |                          | Memory |
                   |        |                          |        | 
                   |        |                          |        |
                   +--------+                          +--------+

        璋冪敤changeInteger涔嬪墠               璋冪敤changeInteger涔嬪悗

    璁╂垜浠妸鐩厜杞悜changeReference銆?br />浠庝唬鐮佷笂錛屾垜浠彲浠ョ湅鍑猴紝鍚宑hangeInteger涔嬮棿鐨勫樊鍒粎浠呭湪浜庡浜嗚繖涔堜竴鍙ャ?br />r = new ReferenceTricks();
    榪欐潯璇彞鐨勪綔鐢ㄦ槸鍒嗛厤涓鍧楁柊鐨勫唴瀛橈紝鐒跺悗灝唕鎸囧悜瀹冦?br />鎵ц瀹岃繖鏉¤鍙ワ紝r灝變笉鍐嶆槸鍘熸潵鐨剅錛屼絾瀹冧緷鐒舵槸涓涓猂eferenceTricks鐨勫璞★紝鎵浠ユ垜浠緷鐒跺彲浠ュ榪欎釜r鐨刬瀛楁璧嬪箋傚埌姝や負姝紝涓鍒囬兘鏄偅涔堣嚜鐒躲?/p>

         Reference +--------+                          +--------+
        ---------->| i = 0  |                          | i = 0  |
                   |--------|                          |--------|
                   | Memory |                          | Memory |
                   |        |                Reference |--------| 
                   |        |               ---------->| i = 5  |
                   +--------+                          +--------+

        璋冪敤changeReference涔嬪墠              璋冪敤changeReference涔嬪悗

    欏虹潃榪欎釜鎬濊礬緇х畫涓嬪幓鐨勮瘽錛屾墽琛屽畬changeReference錛岃緭鍑虹殑r鐨刬瀛楁錛岄偅涔堝簲璇ユ槸搴旇鏄柊鍐呭瓨涓殑i錛屾墍浠ュ簲璇ユ槸5銆傝嚦浜庨偅鍧楄鎴戜滑鎶涘純鐨勫唴瀛橈紝Java鐨凣C鍔熻兘鑷劧浼氭浛鎴戜滑鍠勫悗鐨勩?br />浜嬩笌鎰胯繚銆?br />瀹為檯鐨勭粨鏋滄垜浠凡緇忕湅鍒頒簡錛岃緭鍑虹殑鏄?銆?br />鑲畾鍝釜鍦版柟閿欎簡錛岀┒绔熸槸鍝釜鍦版柟鍛紵

    鍙傛暟浼犻掔殑縐樺瘑
    鐭ラ亾鏂規硶鍙傛暟濡備綍浼犻掑悧錛?br />璁板緱鍒氬紑濮嬪緙栫▼閭d細鍎匡紝鑰佸笀鏁欏錛屾墍璋撳弬鏁幫紝鏈夊艦寮忓弬鏁板拰瀹為檯鍙傛暟涔嬪垎錛屽弬鏁板垪琛ㄤ腑鍐欑殑閭d簺涓滆タ閮藉彨褰㈠紡鍙傛暟錛屽湪瀹為檯璋冪敤鐨勬椂鍊欙紝瀹冧滑浼氳瀹為檯鍙傛暟鎵鏇夸唬銆?br />緙栬瘧紼嬪簭涓嶅彲鑳界煡閬撴瘡嬈¤皟鐢ㄧ殑瀹為檯鍙傛暟閮芥槸浠涔堬紝浜庢槸鍐欑紪璇戝櫒鐨勯珮鎵嬪氨鍑轟釜鍔炴硶錛岃瀹為檯鍙傛暟鎸夌収涓瀹氶『搴忔斁鍒頒竴涓ぇ瀹墮兘鍙互鎵懼緱鍒扮殑鍦版柟錛屼互姝や綔涓烘柟娉曡皟鐢ㄧ殑涓縐嶇害瀹氥傛墍璋?#8220;娌℃湁瑙勭煩錛屼笉鎴愭柟鍦?#8221;錛屾湁浜嗚繖涓鐭╋紝澶у鍗忎綔璧鋒潵灝卞鏄撳浜嗐傝繖涓叕鍏辨暟鎹尯錛岀幇鍦ㄧ紪璇戝櫒鐨勯夋嫨閫氬父鏄?#8220;鏍?#8221;錛岃屾墍璋撶殑欏哄簭灝辨槸褰㈠紡鍙傛暟澹版槑鐨勯『搴忋?br />鏄劇劧錛岀▼搴忚繍琛岀殑榪囩▼涓紝浣滀負瀹為檯鍙傛暟鐨勫彉閲忓彲鑳介亶甯冧簬鍐呭瓨鐨勫悇涓綅緗紝鑰屽茍涓嶄竴瀹氳鑰佽佸疄瀹炵殑鍛嗗湪鏍堥噷銆備負浜嗗畧“瑙勭煩”錛岀▼搴忓彧濂藉皢鍙橀噺澶嶅埗涓浠藉埌鏍堜腑錛屼篃灝辨槸閫氬父鎵璇寸殑灝嗗弬鏁板帇鍏ユ爤涓?br />鎵撹搗綺劇錛岃皽搴曞氨瑕佹彮鏅撲簡銆?br />鎴戝垰鎵嶈浠涔堟潵鐫錛熷皢鍙橀噺澶嶅埗涓浠藉埌鏍堜腑錛屾病閿欙紝“澶嶅埗”錛?br />榪欏氨鏄墍璋撶殑鍊間紶閫掋?br />C璇█鐨勬椃涓栫粡鍏搞奣he C Programming Language銆嬪紑綃囩殑絎竴绔犱腑錛岃皥鍒板疄闄呭弬鏁版椂璇達紝“鍦–涓紝鎵鏈夊嚱鏁扮殑瀹為檯鍙傛暟閮芥槸浼?#8216;鍊?鐨?#8221;銆?br />椹笂浼氭湁浜虹珯鍑烘潵錛?#8220;閿欎簡錛岃繕鏈変紶鍦板潃錛屾瘮濡備互鎸囬拡浼犻掑氨鏄紶鍦板潃”銆?br />涓嶉敊錛屼紶鎸囬拡灝辨槸浼犲湴鍧銆傚湪鎶婃寚閽堣涓哄湴鍧鐨勬椂鍊欙紝鏄惁鑰冭檻榪囪繖鏍蜂竴涓棶棰橈紝瀹冧篃鏄竴涓彉閲忋傚墠闈㈢殑璁ㄨ涓榪囦簡錛屽弬鏁頒紶閫掑繀欏昏鎶婂弬鏁板帇鍏ユ爤涓紝浣滀負鍦板潃鐨勬寚閽堜篃涓嶄緥澶栥傛墍浠ワ紝蹇呴』鎶婅繖涓寚閽堜篃澶嶅埗涓浠姐傚嚱鏁頒腑瀵逛簬鎸囬拡鎿嶄綔瀹為檯涓婃槸瀵逛簬榪欎釜鎸囬拡鍓湰鐨勬搷浣溿?br />Java鐨剅eference絳変簬C鐨勬寚閽堛傛墍浠ワ紝鍦↗ava鐨勬柟娉曡皟鐢ㄤ腑錛宺eference涔熻澶嶅埗涓浠藉帇鍏ュ爢鏍堛傚湪鏂規硶涓reference鐨勬搷浣滃氨鏄榪欎釜reference鍓湰鐨勬搷浣溿?br />璋滃簳鎻檽
    濂斤紝璁╂垜浠洖鍒版渶鍒濈殑闂涓娿?br />鍦╟hangeReference涓浜巖eference鐨勮祴鍊煎疄闄呬笂鏄榪欎釜reference鐨勫壇鏈繘琛岃祴鍊鹼紝鑰屽浜巖eference鐨勬湰灝婃病鏈変駭鐢熶笣姣殑褰卞搷銆?br />鍥炲埌璋冪敤鐐癸紝鏈皧閱掓潵錛屽畠騫朵笉鐭ラ亾鑷繁鐫″幓鐨勮繖孌墊椂闂村唴鍙戠敓榪囦粈涔堬紝鎵浠ュ彧濂藉綋浣滀粈涔堥兘娌″彂鐢熻繃涓鑸傚氨榪欐牱錛屽壇鏈秷澶變簡錛屽湪鏂規硶涓瀹冪殑淇敼涔熷氨鐑熸秷浜戞暎浜嗐?br /> 
    涔熻浣犱細闂嚭榪欐牱鐨勯棶棰橈紝“鍚簡浣犵殑瑙i噴錛屾垜鍙嶈屽changeInteger鎰熷埌榪鋒儜浜嗭紝鏃㈢劧鏄浜庡壇鏈殑鎿嶄綔錛屼負浠涔坈hangeInteger鍙互榪愪綔姝e父錛?#8221;
    鍛靛懙錛屽緢鏈夎叮鐨勫ぇ鑴戠煭璺幇璞°?br />濂斤紝閭f垜灝辯敤鍓嶉潰鐨勮娉曡В閲婁竴涓媍hangeInteger鐨勮繍浣溿?br />鎵璋撳鍒訛紝鍏剁粨鏋滃繀鐒舵槸鍓湰瀹屽叏絳夊悓浜庢湰灝娿俽eference澶嶅埗鐨勭粨鏋滃繀鐒舵槸涓や釜reference鎸囧悜鍚屼竴鍧楀唴瀛樼┖闂淬?br />铏界劧鍦ㄦ柟娉曚腑瀵逛簬鍓湰鐨勬搷浣滃茍涓嶄細褰卞搷鍒版湰灝婏紝浣嗗鍐呭瓨絀洪棿鐨勪慨鏀圭‘瀹炲疄瀹炲湪鍦ㄧ殑銆?br />鍥炲埌璋冪敤鐐癸紝铏界劧鏈皧渚濈劧涓嶇煡閬撴浘緇忓彂鐢熻繃鐨勪竴鍒囷紝浣嗗畠鎸夌収鍘熸潵鐨勬柟寮忚闂唴瀛樼殑鏃跺欙紝鍙栧埌鐨勭‘鏄粡榪囨柟娉曚慨鏀逛箣鍚庣殑鍐呭銆?br />浜庢槸鏂規硶鍙互鎶婅嚜宸辯殑褰卞搷鎵╁睍鍒版柟娉曚箣澶栥?br /> 
    澶氳鍑犲彞
    榪欎釜闂璧鋒簮浜庢垜瀵笴/C++涓悓鏍烽棶棰樼殑鎬濊冦傚悓C/C++鐩告瘮錛屽湪changeReference涓reference璧嬪煎彲鑳藉茍涓嶄細閫犳垚浠涔堝緢涓ラ噸鐨勫悗鏋滐紝鑰屽湪C/C++涓紝榪欎箞鍋氬嵈浼氶犳垚鑷悕鏄憲鐨?#8220;鍐呭瓨娉勬紡”錛屾牴鏈殑鍘熷洜鍦ㄤ簬Java鎷ユ湁浜嗗彲鐖辯殑GC鍔熻兘銆傚嵆渚胯繖鏍鳳紝鎴戜粛涓嶆帹鑽愪嬌鐢ㄨ繖縐嶇殑鎵嬫硶錛屾瘯绔烥C宸茬粡寰堝繖浜嗭紝鎴戜滑鎬庝箞濂芥剰鎬濆啀楹葷儲浜哄銆?br />鍦–/C++涓紝榪欎釜闂榪樺彲浠ョ戶緇紩鐢熾傛棦鐒跺湪鍑芥暟涓浜庢寚閽堢洿鎺ヨ祴鍊艱涓嶉氾紝閭d箞濡備綍鍦ㄥ嚱鏁頒腑淇敼鎸囬拡鍛紵絳旀寰堢畝鍗曪紝鎸囬拡鐨勬寚閽堬紝涔熷氨鏄妸鍘熸潵鐨勬寚閽堢湅浣滀竴涓櫘閫氱殑鏁版嵁錛屾妸涓涓寚鍚戝畠鐨勬寚閽堜紶鍒板嚱鏁頒腑灝卞彲浠ヤ簡銆?br />鍚屾牱鐨勯棶棰樺埌浜咼ava涓氨娌℃湁閭d箞緹庡鐨勮В鍐蟲柟妗堜簡錛屽洜涓篔ava涓彲娌℃湁reference鐨剅eference榪欐牱鐨勮娉曘傚彲鑳界殑鍙橀氬氨鏄皢reference榪涜灝佽鎴愮被銆傝嚦浜庡間笉鍊鹼紝鍏亾鑷湪浜哄績銆?/p>

    Snape 2012-04-11 13:30 鍙戣〃璇勮
    ]]>
    java涓殑澶氱嚎紼?杞?http://www.shnenglu.com/chenglong7997/articles/169591.htmlSnapeSnapeFri, 30 Mar 2012 19:19:00 GMThttp://www.shnenglu.com/chenglong7997/articles/169591.htmlhttp://www.shnenglu.com/chenglong7997/comments/169591.htmlhttp://www.shnenglu.com/chenglong7997/articles/169591.html#Feedback0http://www.shnenglu.com/chenglong7997/comments/commentRss/169591.htmlhttp://www.shnenglu.com/chenglong7997/services/trackbacks/169591.html
    java涓殑澶氱嚎紼?/div>
    鍦╦ava涓鎯沖疄鐜板綰跨▼錛屾湁涓ょ鎵嬫錛屼竴縐嶆槸緇х畫Thread綾伙紝鍙﹀涓縐嶆槸瀹炵幇Runable鎺ュ彛銆?/div>
    瀵逛簬鐩存帴緇ф壙Thread鐨勭被鏉ヨ錛屼唬鐮佸ぇ鑷存鏋舵槸錛?/div>
    class 綾誨悕 extends Thread{
    鏂規硶1;
    鏂規硶2錛?/div>
    public void run(){
    // other code…
    }
    灞炴?錛?/div>
    灞炴?錛?/div>
     
    }
    鍏堢湅涓涓畝鍗曠殑渚嬪瓙錛?/div>
    /**
     * @author Rollen-Holt 緇ф壙Thread綾?鐩存帴璋冪敤run鏂規硶
     * */
    class hello extends Thread {
     
        public hello() {
     
        }
     
        public hello(String name) {
            this.name = name;
        }
     
        public void run() {
            for (int i = 0; i < 5; i++) {
                System.out.println(name + "榪愯     " + i);
            }
        }
     
        public static void main(String[] args) {
            hello h1=new hello("A");
            hello h2=new hello("B");
            h1.run();
            h2.run();
        }
     
        private String name;
    }
    銆愯繍琛岀粨鏋溿戯細
    A榪愯     0
    A榪愯     1
    A榪愯     2
    A榪愯     3
    A榪愯     4
    B榪愯     0
    B榪愯     1
    B榪愯     2
    B榪愯     3
    B榪愯     4
    鎴戜滑浼氬彂鐜拌繖浜涢兘鏄『搴忔墽琛岀殑錛岃鏄庢垜浠殑璋冪敤鏂規硶涓嶅錛屽簲璇ヨ皟鐢ㄧ殑鏄痵tart錛堬級鏂規硶銆?/div>
    褰撴垜浠妸涓婇潰鐨勪富鍑芥暟淇敼涓哄涓嬫墍紺虹殑鏃跺欙細
    public static void main(String[] args) {
            hello h1=new hello("A");
            hello h2=new hello("B");
            h1.start();
            h2.start();
        }
    鐒跺悗榪愯紼嬪簭錛岃緭鍑虹殑鍙兘鐨勭粨鏋滃涓嬶細
    A榪愯     0
    B榪愯     0
    B榪愯     1
    B榪愯     2
    B榪愯     3
    B榪愯     4
    A榪愯     1
    A榪愯     2
    A榪愯     3
    A榪愯     4
    鍥犱負闇瑕佺敤鍒癈PU鐨勮祫婧愶紝鎵浠ユ瘡嬈$殑榪愯緇撴灉鍩烘湰鏄兘涓嶄竴鏍風殑錛屽懙鍛點?/div>
    娉ㄦ剰錛氳櫧鐒舵垜浠湪榪欓噷璋冪敤鐨勬槸start錛堬級鏂規硶錛屼絾鏄疄闄呬笂璋冪敤鐨勮繕鏄痳un錛堬級鏂規硶鐨勪富浣撱?/div>
    閭d箞錛氫負浠涔堟垜浠笉鑳界洿鎺ヨ皟鐢╮un錛堬級鏂規硶鍛紵
    鎴戠殑鐞嗚В鏄細綰跨▼鐨勮繍琛岄渶瑕佹湰鍦版搷浣滅郴緇熺殑鏀寔銆?/div>
    濡傛灉浣犳煡鐪媠tart鐨勬簮浠g爜鐨勬椂鍊欙紝浼氬彂鐜幫細
    public synchronized void start() {
            /**
         * This method is not invoked for the main method thread or "system"
         * group threads created/set up by the VM. Any new functionality added 
         * to this method in the future may have to also be added to the VM.
         *
         * A zero status value corresponds to state "NEW".
             */
            if (threadStatus != 0 || this != me)
                throw new IllegalThreadStateException();
            group.add(this);
            start0();
            if (stopBeforeStart) {
            stop0(throwableFromStop);
        }
    }
    private native void start0();
    娉ㄦ剰鎴戠敤綰㈣壊鍔犵矖鐨勯偅涓鏉¤鍙ワ紝璇存槑姝ゅ璋冪敤鐨勬槸start0錛堬級銆傚茍涓旇繖涓繖涓柟娉曠敤浜唍ative鍏抽敭瀛楋紝嬈″叧閿瓧琛ㄧず璋冪敤鏈湴鎿嶄綔緋葷粺鐨勫嚱鏁般傚洜涓哄綰跨▼鐨勫疄鐜伴渶瑕佹湰鍦版搷浣滅郴緇熺殑鏀寔銆?/div>
    浣嗘槸start鏂規硶閲嶅璋冪敤鐨勮瘽錛屼細鍑虹幇java.lang.IllegalThreadStateException寮傚父銆?/div>
    閫氳繃瀹炵幇Runnable鎺ュ彛錛?/div>
     
    澶ц嚧妗嗘灦鏄細
    class 綾誨悕 implements Runnable{
    鏂規硶1;
    鏂規硶2錛?/div>
    public void run(){
    // other code…
    }
    灞炴?錛?/div>
    灞炴?錛?/div>
     
    }
    鏉ュ厛鐪嬩竴涓皬渚嬪瓙鍚э細
    /**
     * @author Rollen-Holt 瀹炵幇Runnable鎺ュ彛
     * */
    class hello implements Runnable {
     
        public hello() {
     
        }
     
        public hello(String name) {
            this.name = name;
        }
     
        public void run() {
            for (int i = 0; i < 5; i++) {
                System.out.println(name + "榪愯     " + i);
            }
        }
     
        public static void main(String[] args) {
            hello h1=new hello("綰跨▼A");
            Thread demo= new Thread(h1);
            hello h2=new hello("綰跨▼錛?);
            Thread demo1=new Thread(h2);
            demo.start();
            demo1.start();
        }
     
        private String name;
    }
    銆愬彲鑳界殑榪愯緇撴灉銆戯細
    綰跨▼A榪愯     0
    綰跨▼錛㈣繍琛?    0
    綰跨▼錛㈣繍琛?    1
    綰跨▼錛㈣繍琛?    2
    綰跨▼錛㈣繍琛?    3
    綰跨▼錛㈣繍琛?    4
    綰跨▼A榪愯     1
    綰跨▼A榪愯     2
    綰跨▼A榪愯     3
    綰跨▼A榪愯     4
     
    鍏充簬閫夋嫨緇ф壙Thread榪樻槸瀹炵幇Runnable鎺ュ彛錛?/div>
    鍏跺疄Thread涔熸槸瀹炵幇Runnable鎺ュ彛鐨勶細
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    class Thread implements Runnable {
        //…
    public void run() {
            if (target != null) {
                 target.run();
            }
            }
    }
    鍏跺疄Thread涓殑run鏂規硶璋冪敤鐨勬槸Runnable鎺ュ彛鐨剅un鏂規硶銆備笉鐭ラ亾澶у鍙戠幇娌℃湁錛孴hread鍜孯unnable閮藉疄鐜頒簡run鏂規硶錛岃繖縐嶆搷浣滄ā寮忓叾瀹炲氨鏄唬鐞嗘ā寮忋傚叧浜庝唬鐞嗘ā寮忥紝鎴戞浘緇忓啓榪囦竴涓皬渚嬪瓙鍛靛懙錛屽ぇ瀹舵湁鍏磋叮鐨勮瘽鍙互鐪嬩竴涓嬶細http://www.cnblogs.com/rollenholt/archive/2011/08/18/2144847.html
    Thread鍜孯unnable鐨勫尯鍒細
    濡傛灉涓涓被緇ф壙Thread錛屽垯涓嶉傚悎璧勬簮鍏變韓銆備絾鏄鏋滃疄鐜頒簡Runable鎺ュ彛鐨勮瘽錛屽垯寰堝鏄撶殑瀹炵幇璧勬簮鍏變韓銆?/div>
    /**
     * @author Rollen-Holt 緇ф壙Thread綾伙紝涓嶈兘璧勬簮鍏變韓
     * */
    class hello extends Thread {
        public void run() {
            for (int i = 0; i < 7; i++) {
                if (count > 0) {
                    System.out.println("count= " + count--);
                }
            }
        }
     
        public static void main(String[] args) {
            hello h1 = new hello();
            hello h2 = new hello();
            hello h3 = new hello();
            h1.start();
            h2.start();
            h3.start();
        }
     
        private int count = 5;
    }
    銆愯繍琛岀粨鏋溿戯細
    count= 5
    count= 4
    count= 3
    count= 2
    count= 1
    count= 5
    count= 4
    count= 3
    count= 2
    count= 1
    count= 5
    count= 4
    count= 3
    count= 2
    count= 1
    澶у鍙互鎯寵薄錛屽鏋滆繖涓槸涓涓拱紲ㄧ郴緇熺殑璇濓紝濡傛灉count琛ㄧず鐨勬槸杞︾エ鐨勬暟閲忕殑璇濓紝璇存槑騫舵病鏈夊疄鐜拌祫婧愮殑鍏變韓銆?/div>
    鎴戜滑鎹負Runnable鎺ュ彛錛?/div>
    /**
     * @author Rollen-Holt 緇ф壙Thread綾伙紝涓嶈兘璧勬簮鍏變韓
     * */
    class hello implements Runnable {
        public void run() {
            for (int i = 0; i < 7; i++) {
                if (count > 0) {
                    System.out.println("count= " + count--);
                }
            }
        }
     
        public static void main(String[] args) {
            hello he=new hello();
            new Thread(he).start();
        }
     
        private int count = 5;
    }
    銆愯繍琛岀粨鏋溿戯細
    count= 5
    count= 4
    count= 3
    count= 2
    count= 1
     
    鎬葷粨涓涓嬪惂錛?/div>
    瀹炵幇Runnable鎺ュ彛姣旂戶鎵縏hread綾繪墍鍏鋒湁鐨勪紭鍔匡細
    1錛夛細閫傚悎澶氫釜鐩稿悓鐨勭▼搴忎唬鐮佺殑綰跨▼鍘誨鐞嗗悓涓涓祫婧?/div>
    2錛夛細鍙互閬垮厤java涓殑鍗曠戶鎵跨殑闄愬埗
    3錛夛細澧炲姞紼嬪簭鐨勫仴澹э紝浠g爜鍙互琚涓嚎紼嬪叡浜紝浠g爜鍜屾暟鎹嫭绔嬨?/div>
    鎵浠ワ紝鏈漢寤鴻澶у鍔查噺瀹炵幇鎺ュ彛銆?/div>
    /**
     * @author Rollen-Holt 
     * 鍙栧緱綰跨▼鐨勫悕縐?/div>
     * */
    class hello implements Runnable {
        public void run() {
            for (int i = 0; i < 3; i++) {
                System.out.println(Thread.currentThread().getName());
            }
        }
     
        public static void main(String[] args) {
            hello he = new hello();
            new Thread(he,"A").start();
            new Thread(he,"B").start();
            new Thread(he).start();
        }
    }
    銆愯繍琛岀粨鏋溿戯細
    A
    A
    A
    B
    B
    B
    Thread-0
    Thread-0
    Thread-0
    璇存槑濡傛灉鎴戜滑娌℃湁鎸囧畾鍚嶅瓧鐨勮瘽錛岀郴緇熻嚜鍔ㄦ彁渚涘悕瀛椼?/div>
    鎻愰啋涓涓嬪ぇ瀹訛細main鏂規硶鍏跺疄涔熸槸涓涓嚎紼嬨傚湪java涓墍浠ョ殑綰跨▼閮芥槸鍚屾椂鍚姩鐨勶紝鑷充簬浠涔堟椂鍊欙紝鍝釜鍏堟墽琛岋紝瀹屽叏鐪嬭皝鍏堝緱鍒癈PU鐨勮祫婧愩?/div>
     
    鍦╦ava涓紝姣忔紼嬪簭榪愯鑷沖皯鍚姩2涓嚎紼嬨備竴涓槸main綰跨▼錛屼竴涓槸鍨冨溇鏀墮泦綰跨▼銆傚洜涓烘瘡褰撲嬌鐢╦ava鍛戒護鎵ц涓涓被鐨勬椂鍊欙紝瀹為檯涓婇兘浼氬惎鍔ㄤ竴涓吉錛訛輯錛屾瘡涓涓綂錛訛輯瀹炰範鍦ㄥ氨鏄湪鎿嶄綔緋葷粺涓惎鍔ㄤ簡涓涓繘紼嬨?/div>
    鍒ゆ柇綰跨▼鏄惁鍚姩
    /**
     * @author Rollen-Holt 鍒ゆ柇綰跨▼鏄惁鍚姩
     * */
    class hello implements Runnable {
        public void run() {
            for (int i = 0; i < 3; i++) {
                System.out.println(Thread.currentThread().getName());
            }
        }
     
        public static void main(String[] args) {
            hello he = new hello();
            Thread demo = new Thread(he);
            System.out.println("綰跨▼鍚姩涔嬪墠---銆? + demo.isAlive());
            demo.start();
            System.out.println("綰跨▼鍚姩涔嬪悗---銆? + demo.isAlive());
        }
    }
    銆愯繍琛岀粨鏋溿?/div>
    綰跨▼鍚姩涔嬪墠---銆媐alse
    綰跨▼鍚姩涔嬪悗---銆媡rue
    Thread-0
    Thread-0
    Thread-0
    涓葷嚎紼嬩篃鏈夊彲鑳藉湪瀛愮嚎紼嬬粨鏉熶箣鍓嶇粨鏉熴傚茍涓斿瓙綰跨▼涓嶅彈褰卞搷錛屼笉浼氬洜涓轟富綰跨▼鐨勭粨鏉熻岀粨鏉熴?/div>
     
    綰跨▼鐨勫己鍒舵墽琛岋細
    /**
         * @author Rollen-Holt 綰跨▼鐨勫己鍒舵墽琛?/div>
         * */
        class hello implements Runnable {
            public void run() {
                for (int i = 0; i < 3; i++) {
                    System.out.println(Thread.currentThread().getName());
                }
            }
         
            public static void main(String[] args) {
                hello he = new hello();
                Thread demo = new Thread(he,"綰跨▼");
                demo.start();
                for(int i=0;i<50;++i){
                    if(i>10){
                        try{
                            demo.join();  //寮哄埗鎵цdemo
                        }catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                    System.out.println("main 綰跨▼鎵ц-->"+i);
                }
            }
        }
    銆愯繍琛岀殑緇撴灉銆戯細
    main 綰跨▼鎵ц-->0
    main 綰跨▼鎵ц-->1
    main 綰跨▼鎵ц-->2
    main 綰跨▼鎵ц-->3
    main 綰跨▼鎵ц-->4
    main 綰跨▼鎵ц-->5
    main 綰跨▼鎵ц-->6
    main 綰跨▼鎵ц-->7
    main 綰跨▼鎵ц-->8
    main 綰跨▼鎵ц-->9
    main 綰跨▼鎵ц-->10
    綰跨▼
    綰跨▼
    綰跨▼
    main 綰跨▼鎵ц-->11
    main 綰跨▼鎵ц-->12
    main 綰跨▼鎵ц-->13
    錛庯紟錛?/div>
     
    綰跨▼鐨勪紤鐪狅細
    /**
     * @author Rollen-Holt 綰跨▼鐨勪紤鐪?/div>
     * */
    class hello implements Runnable {
        public void run() {
            for (int i = 0; i < 3; i++) {
                try {
                    Thread.sleep(2000);
                } catch (Exception e) {
                    e.printStackTrace();
                }
                System.out.println(Thread.currentThread().getName() + i);
            }
        }
     
        public static void main(String[] args) {
            hello he = new hello();
            Thread demo = new Thread(he, "綰跨▼");
            demo.start();
        }
    }
    銆愯繍琛岀粨鏋溿戯細錛堢粨鏋滄瘡闅?s杈撳嚭涓涓級
    綰跨▼0
    綰跨▼1
    綰跨▼2
     
    綰跨▼鐨勪腑鏂細
    /**
     * @author Rollen-Holt 綰跨▼鐨勪腑鏂?/div>
     * */
    class hello implements Runnable {
        public void run() {
            System.out.println("鎵цrun鏂規硶");
            try {
                Thread.sleep(10000);
                System.out.println("綰跨▼瀹屾垚浼戠湢");
            } catch (Exception e) {
                System.out.println("浼戠湢琚墦鏂?);
                return;  //榪斿洖鍒扮▼搴忕殑璋冪敤澶?/div>
            }
            System.out.println("綰跨▼姝e父緇堟");
        }
     
        public static void main(String[] args) {
            hello he = new hello();
            Thread demo = new Thread(he, "綰跨▼");
            demo.start();
            try{
                Thread.sleep(2000);
            }catch (Exception e) {
                e.printStackTrace();
            }
            demo.interrupt(); //2s鍚庝腑鏂嚎紼?/div>
        }
    }
    銆愯繍琛岀粨鏋溿戯細
    鎵цrun鏂規硶
    浼戠湢琚墦鏂?/div>
     
    鍦╦ava紼嬪簭涓紝鍙鍓嶅彴鏈変竴涓嚎紼嬪湪榪愯錛屾暣涓猨ava紼嬪簭榪涚▼涓嶄細灝忔椂錛屾墍浠ユ鏃跺彲浠ヨ緗竴涓悗鍙扮嚎紼嬶紝榪欐牱鍗充嬌java榪涚▼灝忔椂浜嗭紝姝ゅ悗鍙扮嚎紼嬩緷鐒惰兘澶熺戶緇繍琛屻?/div>
    /**
     * @author Rollen-Holt 綰跨▼鐨勪紭鍏堢駭
     * */
    class hello implements Runnable {
        public void run() {
            for(int i=0;i<5;++i){
                System.out.println(Thread.currentThread().getName()+"榪愯"+i);
            }
        }
     
        public static void main(String[] args) {
            Thread h1=new Thread(new hello(),"A");
            Thread h2=new Thread(new hello(),"B");
            Thread h3=new Thread(new hello(),"C");
            h1.setPriority(8);
            h2.setPriority(2);
            h3.setPriority(6);
            h1.start();
            h2.start();
            h3.start();
             
        }
    }
    銆愯繍琛岀粨鏋溿戯細
    A榪愯0
    A榪愯1
    A榪愯2
    A榪愯3
    A榪愯4
    B榪愯0
    C榪愯0
    C榪愯1
    C榪愯2
    C榪愯3
    C榪愯4
    B榪愯1
    B榪愯2
    B榪愯3
    B榪愯4
    銆備絾鏄璇昏呬笉瑕佽浠ヤ負浼樺厛綰ц秺楂樺氨鍏堟墽琛屻傝皝鍏堟墽琛岃繕鏄彇鍐充簬璋佸厛鍘葷殑CPU鐨勮祫婧愩?/div>
     
    鍙﹀錛屼富綰跨▼鐨勪紭鍏堢駭鏄?.
    綰跨▼鐨勭ぜ璁┿?/div>
    鍦ㄧ嚎紼嬫搷浣滀腑錛屼篃鍙互浣跨敤yield錛堬級鏂規硶錛屽皢涓涓嚎紼嬬殑鎿嶄綔鏆傛椂浜ょ粰鍏朵粬綰跨▼鎵ц銆?/div>
    /**
     * @author Rollen-Holt 綰跨▼鐨勪紭鍏堢駭
     * */
    class hello implements Runnable {
        public void run() {
            for(int i=0;i<5;++i){
                System.out.println(Thread.currentThread().getName()+"榪愯"+i);
                if(i==3){
                    System.out.println("綰跨▼鐨勭ぜ璁?);
                    Thread.currentThread().yield();
                }
            }
        }
     
        public static void main(String[] args) {
            Thread h1=new Thread(new hello(),"A");
            Thread h2=new Thread(new hello(),"B");
            h1.start();
            h2.start();
             
        }
    }
    A榪愯0
    A榪愯1
    A榪愯2
    A榪愯3
    綰跨▼鐨勭ぜ璁?/div>
    A榪愯4
    B榪愯0
    B榪愯1
    B榪愯2
    B榪愯3
    綰跨▼鐨勭ぜ璁?/div>
    B榪愯4
     
     
    鍚屾鍜屾閿侊細
    銆愰棶棰樺紩鍑恒?姣斿璇村浜庝拱紲ㄧ郴緇燂紝鏈変笅闈㈢殑浠g爜錛?/div>
    /**
     * @author Rollen-Holt 
     * */
    class hello implements Runnable {
        public void run() {
            for(int i=0;i<10;++i){
                if(count>0){
                    try{
                        Thread.sleep(1000);
                    }catch(InterruptedException e){
                        e.printStackTrace();
                    }
                    System.out.println(count--);
                }
            }
        }
     
        public static void main(String[] args) {
            hello he=new hello();
            Thread h1=new Thread(he);
            Thread h2=new Thread(he);
            Thread h3=new Thread(he);
            h1.start();
            h2.start();
            h3.start();
        }
        private int count=5;
    }
    銆愯繍琛岀粨鏋溿戯細
    5
    4
    3
    2
    1
    0
    -1
    榪欓噷鍑虹幇浜?1錛屾樉鐒惰繖涓槸閿欑殑銆傦紝搴旇紲ㄦ暟涓嶈兘涓鴻礋鍊箋?/div>
    濡傛灉鎯寵В鍐寵繖縐嶉棶棰橈紝灝遍渶瑕佷嬌鐢ㄥ悓姝ャ傛墍璋撳悓姝ュ氨鏄湪緇熶竴鏃墮棿孌典腑鍙湁鏈変竴涓嚎紼嬭繍琛岋紝
    鍏朵粬鐨勭嚎紼嬪繀欏葷瓑鍒拌繖涓嚎紼嬬粨鏉熶箣鍚庢墠鑳界戶緇墽琛屻?/div>
    銆愪嬌鐢ㄧ嚎紼嬪悓姝ヨВ鍐抽棶棰樸?/div>
    閲囩敤鍚屾鐨勮瘽錛屽彲浠ヤ嬌鐢ㄥ悓姝ヤ唬鐮佸潡鍜屽悓姝ユ柟娉曚袱縐嶆潵瀹屾垚銆?/div>
     
    銆愬悓姝ヤ唬鐮佸潡銆戯細
    璇硶鏍煎紡錛?/div>
    synchronized錛堝悓姝ュ璞★級{
     //闇瑕佸悓姝ョ殑浠g爜
    }
    浣嗘槸涓鑸兘鎶婂綋鍓嶅璞his浣滀負鍚屾瀵硅薄銆?/div>
    姣斿瀵逛簬涓婇潰鐨勪拱紲ㄧ殑闂錛屽涓嬶細
    /**
     * @author Rollen-Holt 
     * */
    class hello implements Runnable {
        public void run() {
            for(int i=0;i<10;++i){
                synchronized (this) {
                    if(count>0){
                        try{
                            Thread.sleep(1000);
                        }catch(InterruptedException e){
                            e.printStackTrace();
                        }
                        System.out.println(count--);
                    }
                }
            }
        }
     
        public static void main(String[] args) {
            hello he=new hello();
            Thread h1=new Thread(he);
            Thread h2=new Thread(he);
            Thread h3=new Thread(he);
            h1.start();
            h2.start();
            h3.start();
        }
        private int count=5;
    }
    銆愯繍琛岀粨鏋溿戯細錛堟瘡涓縐掕緭鍑轟竴涓粨鏋滐級
    5
    4
    3
    2
    1
    銆愬悓姝ユ柟娉曘?/div>
    涔熷彲浠ラ噰鐢ㄥ悓姝ユ柟娉曘?/div>
    璇硶鏍煎紡涓簊ynchronized 鏂規硶榪斿洖綾誨瀷 鏂規硶鍚嶏紙鍙傛暟鍒楄〃錛墈
        // 鍏朵粬浠g爜
    }
    鐜板湪錛屾垜浠噰鐢ㄥ悓姝ユ柟娉曡В鍐充笂闈㈢殑闂銆?/div>
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    /**
     * @author Rollen-Holt
     * */
    class hello implements Runnable {
        public void run() {
            for (int i = 0; i < 10; ++i) {
                sale();
            }
        }
     
        public synchronized void sale() {
            if (count > 0) {
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println(count--);
            }
        }
     
        public static void main(String[] args) {
            hello he = new hello();
            Thread h1 = new Thread(he);
            Thread h2 = new Thread(he);
            Thread h3 = new Thread(he);
            h1.start();
            h2.start();
            h3.start();
        }
     
        private int count = 5;
    }
    銆愯繍琛岀粨鏋溿戯紙姣忕杈撳嚭涓涓級
    5
    4
    3
    2
    1
    鎻愰啋涓涓嬶紝褰撳涓嚎紼嬪叡浜竴涓祫婧愮殑鏃跺欓渶瑕佽繘琛屽悓姝ワ紝浣嗘槸榪囧鐨勫悓姝ュ彲鑳藉鑷存閿併?/div>
    姝ゅ鍒椾婦緇忓吀鐨勭敓浜ц呭拰娑堣垂鑰呴棶棰樸?/div>
    銆愮敓浜ц呭拰娑堣垂鑰呴棶棰樸?/div>
    鍏堢湅涓孌墊湁闂鐨勪唬鐮併?/div>
    class Info {
     
        public String getName() {
            return name;
        }
     
        public void setName(String name) {
            this.name = name;
        }
     
        public int getAge() {
            return age;
        }
     
        public void setAge(int age) {
            this.age = age;
        }
     
        private String name = "Rollen";
        private int age = 20;
    }
     
    /**
     * 鐢熶駭鑰?/div>
     * */
    class Producer implements Runnable{
        private Info info=null;
        Producer(Info info){
            this.info=info;
        }
         
        public void run(){
            boolean flag=false;
            for(int i=0;i<25;++i){
                if(flag){
                    this.info.setName("Rollen");
                    try{
                        Thread.sleep(100);
                    }catch (Exception e) {
                        e.printStackTrace();
                    }
                    this.info.setAge(20);
                    flag=false;
                }else{
                    this.info.setName("chunGe");
                    try{
                        Thread.sleep(100);
                    }catch (Exception e) {
                        e.printStackTrace();
                    }
                    this.info.setAge(100);
                    flag=true;
                }
            }
        }
    }
    /**
     * 娑堣垂鑰呯被
     * */
    class Consumer implements Runnable{
        private Info info=null;
        public Consumer(Info info){
            this.info=info;
        }
         
        public void run(){
            for(int i=0;i<25;++i){
                try{
                    Thread.sleep(100);
                }catch (Exception e) {
                    e.printStackTrace();
                }
                System.out.println(this.info.getName()+"<---->"+this.info.getAge());
            }
        }
    }
     
    /**
     * 嫻嬭瘯綾?/div>
     * */
    class hello{
        public static void main(String[] args) {
            Info info=new Info();
            Producer pro=new Producer(info);
            Consumer con=new Consumer(info);
            new Thread(pro).start();
            new Thread(con).start();
        }
    }
    銆愯繍琛岀粨鏋溿戯細
    Rollen<---->100
    chunGe<---->20
    chunGe<---->100
    Rollen<---->100
    chunGe<---->20
    Rollen<---->100
    Rollen<---->100
    Rollen<---->100
    chunGe<---->20
    chunGe<---->20
    chunGe<---->20
    Rollen<---->100
    chunGe<---->20
    Rollen<---->100
    chunGe<---->20
    Rollen<---->100
    chunGe<---->20
    Rollen<---->100
    chunGe<---->20
    Rollen<---->100
    chunGe<---->20
    Rollen<---->100
    chunGe<---->20
    Rollen<---->100
    chunGe<---->20
    澶у鍙互浠庣粨鏋滀腑鐪嬪埌錛屽悕瀛楀拰騫撮緞騫舵病鏈夊浜庛?/div>
     
    閭d箞濡備綍瑙e喅鍛紵
    1錛?鍔犲叆鍚屾
    2錛?鍔犲叆絳夊緟鍜屽敜閱?/div>
    鍏堟潵鐪嬬湅鍔犲叆鍚屾浼氭槸濡備綍銆?/div>
    class Info {
         
        public String getName() {
            return name;
        }
     
        public void setName(String name) {
            this.name = name;
        }
     
        public int getAge() {
            return age;
        }
     
        public void setAge(int age) {
            this.age = age;
        }
     
        public synchronized void set(String name, int age){
            this.name=name;
            try{
                Thread.sleep(100);
            }catch (Exception e) {
                e.printStackTrace();
            }
            this.age=age;
        }
         
        public synchronized void get(){
            try{
                Thread.sleep(100);
            }catch (Exception e) {
                e.printStackTrace();
            }
            System.out.println(this.getName()+"<===>"+this.getAge());
        }
        private String name = "Rollen";
        private int age = 20;
    }
     
    /**
     * 鐢熶駭鑰?/div>
     * */
    class Producer implements Runnable {
        private Info info = null;
     
        Producer(Info info) {
            this.info = info;
        }
     
        public void run() {
            boolean flag = false;
            for (int i = 0; i < 25; ++i) {
                if (flag) {
                     
                    this.info.set("Rollen", 20);
                    flag = false;
                } else {
                    this.info.set("ChunGe", 100);
                    flag = true;
                }
            }
        }
    }
     
    /**
     * 娑堣垂鑰呯被
     * */
    class Consumer implements Runnable {
        private Info info = null;
     
        public Consumer(Info info) {
            this.info = info;
        }
     
        public void run() {
            for (int i = 0; i < 25; ++i) {
                try {
                    Thread.sleep(100);
                } catch (Exception e) {
                    e.printStackTrace();
                }
                this.info.get();
            }
        }
    }
     
    /**
     * 嫻嬭瘯綾?/div>
     * */
    class hello {
        public static void main(String[] args) {
            Info info = new Info();
            Producer pro = new Producer(info);
            Consumer con = new Consumer(info);
            new Thread(pro).start();
            new Thread(con).start();
        }
    }
    銆愯繍琛岀粨鏋溿戯細
    Rollen<===>20
    ChunGe<===>100
    ChunGe<===>100
    ChunGe<===>100
    ChunGe<===>100
    ChunGe<===>100
    Rollen<===>20
    ChunGe<===>100
    ChunGe<===>100
    ChunGe<===>100
    ChunGe<===>100
    ChunGe<===>100
    ChunGe<===>100
    ChunGe<===>100
    ChunGe<===>100
    ChunGe<===>100
    ChunGe<===>100
    ChunGe<===>100
    ChunGe<===>100
    ChunGe<===>100
    ChunGe<===>100
    ChunGe<===>100
    ChunGe<===>100
    ChunGe<===>100
    ChunGe<===>100
    浠庤繍琛岀粨鏋滄潵鐪嬶紝閿欎貢鐨勯棶棰樿В鍐充簡錛岀幇鍦ㄦ槸Rollen 瀵瑰簲20錛孋hunGe瀵逛簬100
    錛屼絾鏄繕鏄嚭鐜頒簡閲嶅璇誨彇鐨勯棶棰橈紝涔熻偗瀹氭湁閲嶅瑕嗙洊鐨勯棶棰樸傚鏋滄兂瑙e喅榪欎釜闂錛屽氨闇瑕佷嬌鐢∣bject綾誨府蹇欎簡銆?/div>
    錛屾垜浠彲浠ヤ嬌鐢ㄥ叾涓殑絳夊緟鍜屽敜閱掓搷浣溿?/div>
    瑕佸畬鎴愪笂闈㈢殑鍔熻兘錛屾垜浠彧闇瑕佷慨鏀笽nfo綾婚ゥ娓達紝鍦ㄥ叾涓姞涓婃爣蹇椾綅錛屽茍涓旈氳繃鍒ゆ柇鏍囧織浣嶅畬鎴愮瓑寰呭拰鍞ら啋鐨勬搷浣滐紝浠g爜濡備笅錛?/div>
    class Info {
         
        public String getName() {
            return name;
        }
     
        public void setName(String name) {
            this.name = name;
        }
     
        public int getAge() {
            return age;
        }
     
        public void setAge(int age) {
            this.age = age;
        }
     
        public synchronized void set(String name, int age){
            if(!flag){
                try{
                    super.wait();
                }catch (Exception e) {
                    e.printStackTrace();
                }
            }
            this.name=name;
            try{
                Thread.sleep(100);
            }catch (Exception e) {
                e.printStackTrace();
            }
            this.age=age;
            flag=false;
            super.notify();
        }
         
        public synchronized void get(){
            if(flag){
                try{
                    super.wait();
                }catch (Exception e) {
                    e.printStackTrace();
                }
            }
             
            try{
                Thread.sleep(100);
            }catch (Exception e) {
                e.printStackTrace();
            }
            System.out.println(this.getName()+"<===>"+this.getAge());
            flag=true;
            super.notify();
        }
        private String name = "Rollen";
        private int age = 20;
        private boolean flag=false;
    }
     
    /**
     * 鐢熶駭鑰?/div>
     * */
    class Producer implements Runnable {
        private Info info = null;
     
        Producer(Info info) {
            this.info = info;
        }
     
        public void run() {
            boolean flag = false;
            for (int i = 0; i < 25; ++i) {
                if (flag) {
                     
                    this.info.set("Rollen", 20);
                    flag = false;
                } else {
                    this.info.set("ChunGe", 100);
                    flag = true;
                }
            }
        }
    }
     
    /**
     * 娑堣垂鑰呯被
     * */
    class Consumer implements Runnable {
        private Info info = null;
     
        public Consumer(Info info) {
            this.info = info;
        }
     
        public void run() {
            for (int i = 0; i < 25; ++i) {
                try {
                    Thread.sleep(100);
                } catch (Exception e) {
                    e.printStackTrace();
                }
                this.info.get();
            }
        }
    }
     
    /**
     * 嫻嬭瘯綾?/div>
     * */
    class hello {
        public static void main(String[] args) {
            Info info = new Info();
            Producer pro = new Producer(info);
            Consumer con = new Consumer(info);
            new Thread(pro).start();
            new Thread(con).start();
        }
    }
    銆愮▼搴忚繍琛岀粨鏋溿戯細
    Rollen<===>20
    ChunGe<===>100
    Rollen<===>20
    ChunGe<===>100
    Rollen<===>20
    ChunGe<===>100
    Rollen<===>20
    ChunGe<===>100
    Rollen<===>20
    ChunGe<===>100
    Rollen<===>20
    ChunGe<===>100
    Rollen<===>20
    ChunGe<===>100
    Rollen<===>20
    ChunGe<===>100
    Rollen<===>20
    ChunGe<===>100
    Rollen<===>20
    ChunGe<===>100
    Rollen<===>20
    ChunGe<===>100
    Rollen<===>20
    ChunGe<===>100
    Rollen<===>20
    鍏堝湪鐪嬬粨鏋滃氨鍙互鐭ラ亾錛屼箣鍓嶇殑闂瀹屽叏瑙e喅銆?/div>


    Snape 2012-03-31 03:19 鍙戣〃璇勮
    ]]> 青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              欧美一区免费视频| 99精品国产99久久久久久福利| 亚洲精品美女免费| 亚洲第一级黄色片| 欧美成人精品福利| 中国女人久久久| 亚洲综合国产精品| 在线观看一区视频| 亚洲国产精选| 国产精品久久久久7777婷婷| 午夜精品久久久久久99热| 欧美一区二区福利在线| 亚洲电影网站| 亚洲手机成人高清视频| 蜜桃av噜噜一区二区三区| 裸体女人亚洲精品一区| 一区二区三区高清| 欧美一站二站| 一本色道久久综合狠狠躁篇怎么玩| 99re66热这里只有精品3直播| 国产精品网曝门| 女同性一区二区三区人了人一| 欧美日韩国产精品专区| 久久精品国产亚洲精品| 欧美精品一区三区在线观看| 欧美一区二视频| 欧美精品乱码久久久久久按摩| 香蕉久久a毛片| 欧美激情精品久久久久久黑人| 亚洲一级片在线观看| 久久久激情视频| 亚洲影院免费观看| 嫩草国产精品入口| 久久精品99| 欧美午夜在线观看| 欧美成人亚洲成人| 国产午夜精品久久久久久久| 亚洲欧洲三级| 在线日韩av永久免费观看| 亚洲一区不卡| 亚洲毛片一区| 久久亚洲春色中文字幕久久久| 亚洲一区国产视频| 欧美理论在线播放| 亚洲电影av| 在线不卡亚洲| 欧美专区福利在线| 欧美一区二区视频免费观看| 欧美日韩免费| 日韩一二三在线视频播| 亚洲品质自拍| 蜜臀久久99精品久久久久久9| 久久久999国产| 国产日本欧美视频| 在线亚洲精品| 亚洲一区二区三区视频| 欧美日韩一区在线观看| 亚洲精品国产欧美| 亚洲精品国产精品国自产观看| 久久久久9999亚洲精品| 久久嫩草精品久久久久| 国产中文一区二区| 欧美中文字幕第一页| 久久久xxx| 韩国三级电影一区二区| 欧美在线免费视频| 免费观看日韩av| 在线国产精品播放| 欧美+日本+国产+在线a∨观看| 欧美顶级艳妇交换群宴| 亚洲欧洲在线播放| 欧美日韩另类字幕中文| 亚洲免费观看高清在线观看| 亚洲视频一区| 国产精品视频一区二区高潮| 午夜久久久久久| 免费中文日韩| 99香蕉国产精品偷在线观看| 欧美日韩成人在线观看| 亚洲午夜一区二区| 久久精品最新地址| 亚洲人成网站999久久久综合| 欧美激情综合| 亚洲一级二级| 你懂的成人av| 亚洲视频你懂的| 国产综合色一区二区三区 | 亚洲免费在线观看| 国产日韩欧美三级| 美女视频网站黄色亚洲| 亚洲激情中文1区| 欧美一级淫片aaaaaaa视频| 国内久久婷婷综合| 欧美日本国产精品| 欧美一区二区三区精品电影| 免费中文日韩| 亚洲欧美日韩一区二区三区在线观看| 国产欧美日韩麻豆91| 麻豆精品视频在线| 亚洲永久免费视频| 亚洲电影在线| 欧美一区二区观看视频| 亚洲高清视频的网址| 国产精品久久久久毛片软件 | 亚洲欧洲日产国产网站| 欧美在线视频在线播放完整版免费观看| 尤物九九久久国产精品的分类| 欧美日在线观看| 久久亚洲综合色| 亚洲视频国产视频| 亚洲国产一区二区三区青草影视| 欧美亚洲三级| 亚洲一级网站| 9久re热视频在线精品| 黄色国产精品| 国产无遮挡一区二区三区毛片日本| 欧美精品日韩精品| 免费不卡中文字幕视频| 久久爱www| 亚洲欧美日韩一区二区三区在线| 亚洲国产成人在线| 欧美a级一区| 久久青青草综合| 久久不见久久见免费视频1| 亚洲一二三级电影| 在线综合亚洲| aa级大片欧美| 99re66热这里只有精品3直播| 一区二区三区在线免费视频| 国产伦精品一区二区三区视频黑人 | 亚洲综合不卡| 亚洲一区三区视频在线观看| 日韩一级网站| 亚洲精品资源美女情侣酒店| 亚洲动漫精品| 亚洲人成小说网站色在线| 精品动漫3d一区二区三区| 韩国女主播一区二区三区| 国产麻豆视频精品| 国产欧美日韩精品专区| 国产精品欧美一区二区三区奶水| 欧美调教视频| 国产精品五月天| 国产伦理精品不卡| 国产在线拍揄自揄视频不卡99| 国产一区二区三区在线观看免费| 国产日韩精品一区| 国产一区二区三区久久| 国产欧美激情| 影音国产精品| 日韩网站免费观看| 亚洲一区精品在线| 欧美在线免费播放| 久久视频一区二区| 欧美激情一区三区| 99精品热视频只有精品10| 亚洲深夜福利在线| 久久久久.com| 欧美了一区在线观看| 国产精品久久久久毛片大屁完整版| 国产乱理伦片在线观看夜一区| 国内精品视频在线播放| 亚洲国产专区校园欧美| 99精品视频一区| 午夜一区不卡| 欧美高清hd18日本| 宅男噜噜噜66一区二区| 欧美一区日韩一区| 免费视频亚洲| 国产精品福利片| 激情久久五月| 亚洲影视在线| 欧美肥婆bbw| 正在播放欧美视频| 久久久综合网| 国产精品theporn88| 伊人婷婷欧美激情| 亚洲在线第一页| 欧美国产日韩免费| 亚洲欧美精品在线| 欧美激情91| 国产亚洲在线| 亚洲一区二区三区乱码aⅴ蜜桃女| 久久夜色精品| 亚洲无毛电影| 欧美日本高清视频| 亚洲电影免费观看高清完整版在线| 一区二区三区免费看| 男人的天堂成人在线| 亚洲视频一区二区在线观看| 久久字幕精品一区| 国产日韩三区| 亚洲综合久久久久| 亚洲国产欧美在线人成| 久久精品国产视频| 国产欧美一级| 亚洲免费在线看| 日韩性生活视频| 欧美激情女人20p| 亚洲大胆人体视频|