锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
Robocode 鏄竴涓緢瀹規槗浣跨敤鐨勬満鍣ㄤ漢鎴樻枟浠跨湡鍣紝鍙互鍦ㄦ墍鏈夋敮鎸?Java 2 鐨勫鉤鍙頒笂榪愯銆傛偍鍒涘緩涓涓満鍣ㄤ漢錛屾妸瀹冩斁鍒版垬鍦轟笂錛岀劧鍚庤瀹冨悓鍏朵粬寮鍙戣呬滑鍒涘緩鐨勬満鍣ㄤ漢瀵規墜鎷兼鎴樻枟鍒板簳銆俁obocode 閲屾湁涓浜涢鍏堝仛濂界殑鏈哄櫒浜哄鎵嬭浣犲叆闂紝浣嗕竴鏃︽偍涓嶅啀闇瑕佸畠浠紝灝卞彲浠ユ妸鎮ㄨ嚜宸卞垱寤虹殑鏈哄櫒浜哄姞鍏ュ埌姝e湪涓栫晫鑼冨洿鍐呭艦鎴愮殑鏌愪釜鑱旂洘閲屽幓鍜屼笘鐣屾渶寮烘墜瀵歸樀銆?/font>
姣忎釜 Robocode 鍙傚姞鑰呴兘瑕佸埄鐢?Java 璇█鍏冪礌鍒涘緩浠栨垨濂圭殑鏈哄櫒浜猴紝榪欐牱灝變嬌浠庡垵瀛﹁呭埌楂樼駭榛戝鐨勫箍澶у紑鍙戣呴兘鍙互鍙備笌榪欎竴濞變箰媧誨姩銆傚垵綰х殑 Java 鐨勫紑鍙戣呬滑鍙互瀛︿範涓浜涘熀紜鐭ヨ瘑錛氳皟鐢?API 浠g爜銆侀槄璇?Javadoc銆佺戶鎵褲佸唴閮ㄧ被銆佷簨浠跺鐞嗙瓑絳夈傞珮綰у紑鍙戣呬滑鍙互鍦ㄦ瀯寤衡滄渶浼樺搧縐嶁濈殑杞歡鏈哄櫒浜哄叏鐞冪珵璧涗腑鎻愰珮浠栦滑鐨勭紪紼嬫妧宸с傚湪鏈枃涓紝鎴戜滑灝嗕粙緇?Robocode錛屽茍鎸囧鎮ㄤ粠鏋勫緩鎮ㄥ鉤鐢熺涓涓?Robocode 鏈哄櫒浜哄紑濮嬪緛鏈嶄笘鐣屻傛垜浠繕灝嗙湅涓涓嬭糠浜虹殑鈥滃悗鍙扳濇満鍒訛紝姝f槸瀹冧嬌寰?Robocode 璧蜂綔鐢ㄣ?/font>
Robocode 鏄?Mathew Nelson 鐨勬櫤鎱т箣浣滐紝浠栨槸 IBM Internet 閮ㄩ棬 Advanced Technology 鐨勮蔣浠跺伐紼嬪笀銆傝棣栧厛璁塊棶 IBM alphaWorks
Robocode
欏甸潰銆傚湪榪欎釜欏甸潰涓婏紝鎮ㄥ彲浠ユ壘鍒?Robocode 緋葷粺鏈鏂扮殑鍙墽琛屾枃浠躲傝繖涓垎鍙戝寘鏄竴涓嚜鍖呭惈鐨勫畨瑁呮枃浠訛紝鍦ㄤ笅杞借鍒嗗彂鍖呬箣鍚庯紝鎮ㄥ氨鍙互浣跨敤涓嬮潰鐨勫懡浠よ鍦ㄦ偍鐨勭郴緇熶笂瀹夎榪欎釜杞歡鍖咃紙褰撶劧錛屾垜浠亣瀹氭偍鐨勬満鍣ㄤ笂宸茬粡棰勫畨瑁呬簡 Java VM錛圝DK 1.3.x錛夛級錛?/font>
瀹夎瀹屾垚鍚庯紝鎮ㄥ彲浠ラ氳繃 shell 鑴氭湰錛坮obocode.sh錛夈佹壒澶勭悊鏂囦歡錛坮obocode.bat錛夋垨妗岄潰涓婄殑鍥炬爣鏉ュ惎鍔?Robocode 緋葷粺銆傛鏃訛紝鎴樺満灝嗕細鍑虹幇銆傚湪姝わ紝鎮ㄥ彲浠ラ氳繃鑿滃崟璋冪敤 Robot Editor 鍜?compiler銆?/font>
褰撴偍嬋媧?Robocode 鏃訛紝灝嗙湅鍒頒袱涓浉鍏崇殑 GUI 紿楀彛錛岃繖涓や釜紿楀彛鏋勬垚浜?Robocode 鐨?IDE錛?/font>
鍥?1 灞曠ず浜嗗浜庡伐浣滅姸鎬佺殑鎴樺満鍜?Robot Editor銆?/font>
鎴樺満鏄満鍣ㄤ漢涔嬮棿榪涜鎴樻枟鐩磋嚦鍒嗗嚭鑳滆礋鐨勫満鍦般備富瑕佺殑浠跨湡寮曟搸琚疆浜庡叾涓紝騫朵笖鍏佽鎮ㄥ湪榪欓噷鍒涘緩鎴樻枟銆佷繚瀛樻垬鏂椾互鍙婃墦寮鏂板緩鐨勬垨鐜版湁鐨勬垬鏂椼傞氳繃鐣岄潰鍖哄煙鍐呯殑鎺т歡錛屾偍鍙互鏆傚仠鎴栫戶緇垬鏂椼佺粓姝㈡垬鏂椼佹秷鐏換浣曟満鍣ㄤ漢涓綋鎴栬幏鍙栦換浣曟満鍣ㄤ漢鐨勭粺璁℃暟鎹傛澶栵紝鎮ㄥ彲浠ュ湪姝ゅ睆騫曚笂嬋媧?Robot Editor銆?/font>
Robot Editor 鏄竴涓畾鍒剁殑鏂囨湰緙栬緫鍣紝瀹冨彲浠ョ敤浜庣紪杈戠敓鎴愭満鍣ㄤ漢鐨?Java 婧愭枃浠躲傚湪瀹冪殑鑿滃崟閲岄泦鎴愪簡 Java 緙栬瘧鍣紙鐢ㄤ簬緙栬瘧鏈哄櫒浜轟唬鐮侊級浠ュ強瀹氬埗鐨?Robot 鎵撳寘鍣ㄣ傜敱 Robot Editor 鍒涘緩騫舵垚鍔熺紪璇戠殑鎵鏈夋満鍣ㄤ漢閮戒細澶勪簬鎴樺満涓婁竴涓儴緗插氨緇殑浣嶇疆銆?/font>
Robocode 閲岀殑姣忎釜鏈哄櫒浜洪兘鐢變竴涓垨澶氫釜 Java 綾繪瀯鎴愩傝繖浜涚被鍙互琚帇緙╂垚涓涓?JAR 鍖呫備負姝わ紝Robocode 鐨勬渶鏂扮増鏈彁渚涗簡涓涓彲浠ュ湪鎴樺満 GUI 紿楀彛涓縺媧葷殑鈥淩obot Packager鈥濄?/font>
鍦ㄥ啓榪欑瘒鏂囩珷鏃訛紝Robocode 鏈哄櫒浜烘槸涓涓浘褰㈠寲鐨勫潶鍏嬨傚浘 2 鏄竴涓吀鍨嬬殑 Robocode 鏈哄櫒浜虹殑鍥捐В銆?/font>
璇鋒敞鎰忥紝鏈哄櫒浜烘湁涓闂ㄥ彲浠ユ棆杞殑鐐紝鐐笂闈㈢殑闆瘋揪涔熸槸鍙互鏃嬭漿鐨勩傛満鍣ㄤ漢鍧﹀厠杞︼紙Vehicle錛夈佺偖錛圙un錛変互鍙婇浄杈撅紙Radar錛夐兘鍙互鍗曠嫭鏃嬭漿錛屼篃灝辨槸璇達紝鍦ㄤ換浣曟椂鍒伙紝鏈哄櫒浜哄潶鍏嬭濺銆佺偖浠ュ強闆瘋揪閮藉彲浠ヨ漿鍚戜笉鍚岀殑鏂瑰悜銆傜己鐪佹儏鍐典笅錛岃繖浜涙柟鍚戞槸涓鑷寸殑錛岄兘鎸囧悜鍧﹀厠杞﹁繍鍔ㄧ殑鏂瑰悜銆?/font>
Robocode 鏈哄櫒浜虹殑鍛戒護闆嗛兘鏀跺綍鍦?Robocode API Javadoc 涓傛偍灝嗕細鍙戠幇榪欎簺鍛戒護閮芥槸
璁╂垜浠粠縐誨姩鏈哄櫒浜哄強鍏惰澶囩殑鍩烘湰鍛戒護寮濮嬶細
榪欎簺鍛戒護閮芥槸鍦ㄦ墽琛屽畬姣曞悗鎵嶆妸鎺у埗鏉冧氦榪樼粰紼嬪簭銆傛澶栵紝杞姩鍧﹀厠杞︾殑鏃跺欙紝闄ら潪閫氳繃璋冪敤涓嬪垪鏂規硶鍒嗗埆鎸囨槑鐐紙鍜岄浄杈撅級鐨勬柟鍚戯紝鍚﹀垯鐐紙鍜岄浄杈撅級鐨勬寚鍚戜篃灝嗙Щ鍔ㄣ?/font>
鏈夎澶氭柟娉曞彲浠ュ緱鍒板叧浜庢満鍣ㄤ漢鐨勪俊鎭備笅闈㈢畝鍗曞垪涓句簡甯哥敤鐨勬柟娉曡皟鐢細
涓鏃︽偍鎺屾彙浜嗙Щ鍔ㄦ満鍣ㄤ漢浠ュ強鐩稿叧鐨勬鍣ㄨ澶囩殑鏂規硶錛屾偍灝辮鑰冭檻灝勫嚮鍜屾帶鍒舵崯瀹崇殑浠誨姟浜嗐傛瘡涓満鍣ㄤ漢鍦ㄥ紑濮嬫椂閮芥湁涓涓己鐪佺殑鈥滆兘閲忕駭鍒濓紝褰撳畠鐨勮兘閲忕駭鍒噺灝忓埌闆剁殑鏃跺欙紝鎴戜滑灝辮涓鴻繖涓満鍣ㄤ漢宸茬粡琚秷鐏簡銆傚皠鍑葷殑鏃跺欙紝鏈哄櫒浜烘渶澶氬彲浠ョ敤鎺変笁涓兘閲忓崟浣嶃傛彁渚涚粰鐐脊鐨勮兘閲忚秺澶氾紝瀵圭洰鏍囨満鍣ㄤ漢鎵閫犳垚鐨勬崯瀹充篃灝辮秺澶с?
姣忓綋鏈哄櫒浜哄湪縐誨姩鎴栬漿鍔ㄦ椂錛岄浄杈句竴鐩村浜庢縺媧葷姸鎬侊紝濡傛灉闆瘋揪媯嫻嬪埌鏈夋満鍣ㄤ漢鍦ㄥ畠鐨勮寖鍥村唴錛屽氨浼氳Е鍙戜竴涓簨浠躲備綔涓烘満鍣ㄤ漢鍒涘緩鑰咃紝鎮ㄦ湁鏉冮夋嫨澶勭悊鍙兘鍦ㄦ垬鏂椾腑鍙戠敓鐨勫悇綾諱簨浠躲傚熀鏈殑
鎴戜滑鍙渶瑕佺煡閬撹繖浜涘氨鍙互鍒涘緩涓浜涚浉褰撳鏉傜殑鏈哄櫒浜轟簡銆傛偍鍙互閫氳繃鎴樺満鐨勫府鍔╄彍鍗曟垨 Robot Editor 鐨勫府鍔╄彍鍗曡闂?Javadoc 涓叾浣欑殑 Robocode API銆?/font>
鐜板湪錛屾垜浠鎶婂鍒扮殑鐭ヨ瘑浠樿瀹炶返浜嗐?/font>
瑕佸垱寤轟竴涓柊鐨勬満鍣ㄤ漢錛岃鍚姩 Robot Editor 騫墮夋嫨 File-> New-> Robot銆傜郴緇熷皢浼氭彁紺烘偍杈撳叆鏈哄櫒浜虹殑鍚嶇О錛岃繖涓悕縐板皢鎴愪負 Java 綾誨悕銆傝鎮ㄥ湪鎻愮ず絎﹀杈撳叆 DWStraight銆傛帴涓嬫潵錛岀郴緇熻繕浼氭彁紺烘偍杈撳叆涓涓嫭涓鏃犱簩鐨勫寘鍓嶇紑錛屽畠灝嗙敤浣滃瓨鏀炬満鍣ㄤ漢錛堣繕鍙兘鏈夌浉鍏崇殑 Java 鏂囦歡錛夌殑鍖呯殑鍚嶇О銆傝鍦ㄨ鎻愮ず絎﹀杈撳叆 dw銆?
Robot Editor 灝變細鏄劇ず鎮ㄨ鎺у埗榪欎釜鏈哄櫒浜洪渶瑕佺紪鍐欑殑 Java 浠g爜銆傛竻鍗?1 鏄偍灝嗕細鐪嬪埌鐨勪唬鐮佺殑涓涓ず渚嬶細
紿佸嚭鏄劇ず鐨勫尯鍩熷氨鏄垜浠坊鍔犳帶鍒舵満鍣ㄤ漢鐨勪唬鐮佺殑鍦版柟錛?/font>
Area 1
Area 2
Area 3
Area 4
鎴戜滑瀵圭涓涓満鍣ㄤ漢錛圖WStraight錛夌殑浠g爜鐨勬洿鏂板娓呭崟 2 涓孩鑹叉爣璁版墍紺恒?/font>
涓嬮潰鎴戜滑閫愬尯鍦版弿榪拌繖涓涓涓満鍣ㄤ漢灝嗗仛浜涗粈涔堬細
Area 1鎴戜滑娌℃湁鍦ㄨ繖涓満鍣ㄤ漢鐨勭▼搴忎腑鎸囧畾浠諱綍綾諱綔鐢ㄥ煙鍙橀噺銆?
Area 2
Area 3
Area 4
鍦?Robot Editor 鑿滃崟涓婇夋嫨 Compiler-> Compile緙栬瘧鎮ㄧ殑鏈哄櫒浜轟唬鐮併傜幇鍦ㄦ垜浠彲浠ュ皾璇曠涓鍥炲悎鐨勬垬鏂椾簡銆傚垏鎹㈠洖鎴樺満騫墮夋嫨鑿滃崟涓婄殑 Battle-> New錛屽皢浼氬嚭鐜頒竴涓被浼間簬鍥?3 涓墍紺虹殑瀵硅瘽妗嗐?
璇峰厛灝嗘垜浠殑鏈哄櫒浜?dw.DWStraight 娣誨姞鍒版垬鏂椾腑錛岀劧鍚庡啀娣誨姞涓涓鎵嬫満鍣ㄤ漢錛屾瘮濡?sample.SittingDuck銆傚崟鍑?Finish錛屾垬鏂楀氨寮濮嬩簡銆備笉鍙惁璁わ紝鍚?SittingDuck 鎴樻枟騫朵笉鎬庝箞鏈夎叮錛屼絾鏄偍鍙互鐩澒榪欎釜鍙仛 DWStraight 鐨勬満鍣ㄤ漢鍦ㄧ己鐪佹儏鍐典笅鐨勮涓恒傝瘯璇?sample 鏂囦歡澶歸噷鐨勫叾浠栨満鍣ㄤ漢錛岀湅鐪?DWStraight 鍚岃繖浜涙満鍣ㄤ漢鐨勬垬鏂楁儏鍐靛浣曘?
褰撴偍鍑嗗寮濮嬬爺絀跺彟澶栦竴涓満鍣ㄤ漢鐨勪唬鐮佹椂錛岃鍏堢湅鐪嬮殢
鍙傝冭祫鏂?/font>
涓殑浠g爜鍒嗗彂鍖呬竴璧鋒彁渚涚殑 dw.DWRotater 榪欎釜鏈哄櫒浜虹殑浠g爜銆傚湪緙虹渷鎯呭喌涓嬶紝榪欎釜鏈哄櫒浜哄皢浼氾細
榪欐浠g爜綆鍗曟槗鎳傦紝鎵浠ユ垜浠湪榪欓噷灝變笉鍋氬垎鏋愪簡錛屼絾鏄垜榧撳姳鎮ㄨ瘯楠屼竴涓嬨俁obocode 涓殑 sample 鍖呰繕鎻愪緵浜嗚澶氬叾浠栨満鍣ㄤ漢鐨勪唬鐮併?/font>
闅忕潃鎮ㄨ璁℃満鍣ㄤ漢鐨勬按騫崇殑鎻愰珮錛屾満鍣ㄤ漢鐨勪唬鐮佷富浣撳皢鍏呭垎澧為暱銆傚榪欎簺浠g爜鐨勪竴縐嶆ā鍧楀寲澶勭悊鏂規硶鏄妸浠g爜鍒嗚В鎴愮嫭绔嬬殑 Java 綾伙紝鐒跺悗閫氳繃鎵撳寘鍣ㄦ妸榪欎簺 Java 綾繪墦鍖呮垚涓涓崟鐙殑鍖咃紙JAR 鏂囦歡錛夛紝騫跺皢瀹冨寘鎷湪鎮ㄧ殑鏈哄櫒浜哄垎鍙戝寘鍐呫俁obocode 灝嗚嚜鍔ㄥ湪瀹冪殑 robots 鐩綍涓嬬殑鍖呴噷鎵懼埌 robot 綾匯?/font>
浠諱綍浜洪兘鍙互鍒涘緩
鎴戠瑙佷簡 Robocode 鐨勫垱寤鴻?Mathew Nelson錛屽悜浠栬鏁欏垱寤?Robocode 鏈鍒濈殑璁捐鐩殑銆侻at 鎵璇寸殑鏄細鈥滅紪鍐?Robocode 鐨勪竴閮ㄥ垎鐩殑鏄負浜嗗悜涓栫晫璇佹槑錛氳薄鈥楯ava 姣旇緝鎱⑩欎互鍙娾楯ava 涓嶅彲浠ョ敤鏉ュ啓娓告垙鈥欎箣綾葷殑璁烘柇涓嶅啀姝g‘銆傛垜璁や負鎴戣瘉鏄庝簡榪欎竴鐐廣傗?/font>
閫氳繃鈥滃湪鍚庡彴鈥濆 Robocode 榪涜鍒嗘瀽錛屾垜浠彂鐜板鏉傜殑浠跨湡寮曟搸鏃㈠叿楂樻ц兘錛堜負浜嗕互鐜板疄鐨勯熷害鐢熸垚鎴樻枟錛夊張鍏風伒媧繪э紙浣垮垱寤哄鏉傜殑鏈哄櫒浜洪昏緫涓嶅瓨鍦ㄩ殰紕嶏級銆傜壒鍒劅璋?Robocode 鐨勫垱寤鴻?Mathew Nelson 鏃犵鐨勬彁渚涗簡浠跨湡寮曟搸浣撶郴緇撴瀯鐨勫唴閮ㄤ俊鎭?/font>
鍥?4 涓墍紺虹殑浠跨湡寮曟搸鍒╃敤鐨勬槸澶у鏁扮幇浠g殑 Java VM 閮芥彁渚涚殑闈炴姠鍗犲紡綰跨▼鎶鏈紝騫剁粨鍚堜嬌鐢ㄤ簡 JDK GUI 鍜?2D 鍥懼艦搴撴彁渚涚殑鐢熸垚鍔熻兘銆?/font>
璇鋒敞鎰忥紝鎵浠跨湡鐨勬瘡涓満鍣ㄤ漢閮藉湪瀹冭嚜宸辯殑 Java 綰跨▼涓婏紝瀹冨彲浠ュ湪浠諱綍鍙傜敤鐨勫湴鏂瑰埄鐢?VM 鏈湴綰跨▼鏄犲皠鏈哄埗銆傛垬鏂楃鐞嗗櫒綰跨▼鏄郴緇熺殑鎺у埗鍣細瀹冨畨鎺掍豢鐪熷茍椹卞姩鍥懼艦鍖栫殑鐢熸垚瀛愮郴緇熴傚浘褰㈠寲鐨勭敓鎴愬瓙緋葷粺鏈韓鏄熀浜?Java 2D 鍜?AWT 鐨勩?/font>
涓轟簡鍑忓皯鍏變韓璧勬簮鍙兘甯︽潵鐨勯棶棰橈紙浠ュ強鏈夊彲鑳介殢涔嬪嚭鐜扮殑姝婚攣鎴栭樆濉炰豢鐪熷紩鎿庯級錛屾垬鏂楃鐞嗗櫒綰跨▼鍜屾満鍣ㄤ漢綰跨▼涔嬮棿鐨勮﹀悎搴斿綋闈炲父鏉炬暎銆備負浜嗗疄鐜拌繖縐嶆澗鏁h﹀悎錛屾瘡涓満鍣ㄤ漢綰跨▼閮藉皢鏈夊睘浜庤嚜宸辯殑浜嬩歡闃熷垪銆傝幏鍙栧強澶勭悊榪欎簺浜嬩歡閮芥槸鍦ㄦ瘡涓満鍣ㄤ漢鑷繁鐨勭嚎紼嬪唴榪涜銆傝繖縐嶅熀浜庣嚎紼嬬殑闃熷垪鏈夋晥鍦版秷闄や簡鎴樻枟綆$悊鍣ㄧ嚎紼嬪拰鏈哄櫒浜虹嚎紼嬩箣闂達紙鎴栨満鍣ㄤ漢綰跨▼鏈韓涔嬮棿錛夊彲鑳藉瓨鍦ㄧ殑浠諱綍浜夌敤銆?/font>
鎮ㄥ彲浠ユ妸 Robocode 浠跨湡鍣ㄥ紩鎿庣湅浣滄槸涓涓豢鐪熷櫒紼嬪簭錛岃紼嬪簭鍦ㄨ繍琛屾椂浼氫嬌鐢ㄤ竴浜涙彃浠訛紙瀹氬埗鏈哄櫒浜猴級錛涜繖浜涙彃浠跺彲浠ュ埄鐢ㄥ凡鏈夌殑 API錛?
鍦ㄤ換浣曟椂鍊欙紝鏈哄櫒浜虹嚎紼嬮兘鍙互璋冪敤鐢卞畠鐨勭埗綾?
鎴樻枟綆$悊鍣ㄧ嚎紼嬬鐞嗘満鍣ㄤ漢銆佺偖寮瑰強瀹冧滑鍦ㄦ垬鍦轟笂鐨勭敓鎴愩備豢鐪熲滄椂閽熲濇槸鏍規嵁鎴樺満涓婄敓鎴愮殑甯х殑鏁扮洰鏉ユ爣璁扮殑銆傜敤鎴峰彲浠ヨ皟鏁寸湡瀹炵殑甯х殑閫熷害銆?/font>
鍦ㄤ竴涓吀鍨嬬殑鍥炲悎涓紝鎴樻枟綆$悊鍣ㄧ嚎紼嬪敜閱掓瘡涓満鍣ㄤ漢綰跨▼錛岀劧鍚庣瓑寰呮満鍣ㄤ漢瀹屾垚瀹冪殑涓杞垬鏂?鍗籌紝鍐嶆璋冪敤涓涓樆濉?API錛夈傜瓑寰呯殑闂撮殧鏃墮棿閫氬父鏄嚑鍗佹縐掞紝鍗充嬌鏄渶澶嶆潅鐨勬満鍣ㄤ漢錛屼嬌鐢ㄧ幇浠婂吀鍨嬬殑緋葷粺閫熷害榪涜絳栫暐瀹夋帓鍜岃綆楋紝涔熷彧瑕?1 鍒?2 姣鐨勬椂闂淬?/font>
浠ヤ笅鏄垬鏂楃鐞嗗櫒綰跨▼鎵ц鐨勯昏緫鐨勪吉浠g爜錛?/font>
璇鋒敞鎰忥紝鍦?for 寰幆鍐呴儴錛屾垬鏂楃鐞嗗櫒綰跨▼鐨勭瓑寰呮椂闂翠笉浼氳秴榪囨渶澶х殑鏃墮棿闂撮殧銆傚鏋滄満鍣ㄤ漢綰跨▼娌℃湁鍙婃椂璋冪敤闃誨 API錛堝吀鍨嬫儏鍐典笅鏄敱浜庝竴浜涘簲鐢ㄧ▼搴忛昏緫閿欒鎴栨棤闄愬驚鐜級錛岄偅涔堬紝瀹冨皢緇х畫榪涜鎴樻枟銆傜敓鎴愪竴涓?
AWT 鍜?Java 2D 綰跨▼灝辨槸褰撳墠瀹炵幇涓殑鐢熸垚瀛愮郴緇燂紝瀹冧粠鎴樻枟綆$悊鍣ㄤ腑鑾峰彇鍛戒護騫剁敓鎴愭垬鍦恒傚畠鍚岀郴緇熺殑鍏朵綑閮ㄥ垎鏄畬鍏ㄥ垎紱葷殑銆傛垜浠彲浠ラ瑙佸埌錛屽湪榪欎釜鐢熸垚瀛愮郴緇熷皢鏉ョ殑淇鐗堜腑錛屽畠鍙互琚浛鎹㈡帀錛堟瘮濡傦紝鐢?3-D 鐢熸垚鍣級銆傚湪褰撳墠鐨勫疄鐜頒腑錛屽彧瑕?Robocode 搴旂敤紼嬪簭琚渶灝忓寲錛岀敓鎴愬氨紱佺敤浜嗭紝榪欏彲浠ヤ互鏇村揩鐨勯熷害榪涜浠跨湡銆?/font>
閫氳繃 alphaWorks Robocode 绔欑偣涓婄殑涓涓璁虹粍錛堣鍙傞槄
鍙傝冭祫鏂?/font>
錛夛紝Mathew Nelson 鍙互鍚?Robocode 鐢ㄦ埛紺懼尯淇濇寔绱у瘑鐨勫弽棣堣仈緋匯傝澶氬弽棣堥兘騫跺叆浜嗙湡瀹炵殑浠g爜涓侻athew 宸茶鍒掑嵆灝嗚榪涜鐨勪竴浜涙敼榪涙湁錛?
瀵逛簬涓涓粠 2001 騫?7 鏈?12 鏃ュ嚭鐜板湪鍏紬闈㈠墠鐨勯」鐩紝Robocode 鐨勫嚭鍚嶇畝鐩磋浜哄悆鎯娿傚敖綆℃渶鏂扮殑鍙敤鐗堟湰榪樹笉鍒?1.0錛堝湪鍐欒繖綃囨枃绔犳椂鏄増鏈?0.98.2錛夛紝浣嗗畠宸茬粡鏄叏涓栫晫鐨勫ぇ瀛︽牎鍥互鍙婂叕鍙哥殑 PC 鏈轟笂棰囧彈嬈㈣繋鐨勫ū涔愭椿鍔ㄤ簡銆俁obocode 鑱旂洘錛堟垨 roboleagues錛夋濡傞洦鍚庢槬絎嬭埇鍑虹幇錛屽湪榪欎簺鑱旂洘閲岋紝浜轟滑閫氳繃鍥犵壒緗戣鑷繁瀹氬埗鐨勪綔鍝佺浉浜掕緝閲忋傚ぇ瀛︽暀鎺堜滑涓鐩村湪鎸栨帢 Robocode 鐨勬暀鑲茬壒鎬э紝騫朵笖宸茬粡鎶婂畠綰沖叆浜嗗ぇ瀛﹂噷鐨勮綆楁満縐戝璇劇▼銆傚湪鍥犵壒緗戜笂錛孯obocode 鐢ㄦ埛緇勩佽璁哄垪琛ㄣ丗AQ銆佹暀紼嬪拰 Webring 闅忓鍙銆?
鏄劇劧錛孯obocode 宸茬粡濉ˉ浜嗗ぇ浼楀寲鐨勫瘬鏁欎簬涔愰鍩熺殑絀虹櫧 鈥?瀹冧負瀛︾敓浠拰鐔鐨勫伐紼嬪笀浠彁渚涚畝渚褲佹湁瓚c侀潪鑳佽揩鍗村瘜绔炰簤鍔涚殑鏂瑰紡錛岄噴鏀句粬浠殑鍒涢犲姏錛岃屼笖鏈夊彲鑳藉疄鐜頒粬浠緛鏈嶄笘鐣岀殑姊︽兂銆?/font>
]]>
java -jar robocode-setup.jar
聽鍦ㄥ畨瑁呰繃紼嬩腑錛孯obocode 灝嗛棶鎮ㄦ槸鍚﹁浣跨敤榪欎釜澶栭儴鐨?Java VM 鏉ョ紪璇戞満鍣ㄤ漢銆傛偍涔熷彲浠ラ夋嫨浣跨敤浣滀負 Robocode 鍒嗗彂鍖呬竴閮ㄥ垎鑰屾彁渚涚殑 Jikes 緙栬瘧鍣ㄣ?/font>
鍥為〉棣?/font>
鍥?1. Robocode IDE
鍥為〉棣?/font>
鍥?2. 瀵?Robocode 鏈哄櫒浜虹殑璇︾粏鍒嗘瀽
鍥為〉棣?/font>
robocode.Robot 綾葷殑鍏叡鏂規硶銆傚湪榪欎竴閮ㄥ垎錛屾垜浠皢鍒嗙被璁ㄨ姣忎釜鍙敤鐨勫懡浠ゃ?
turnRight(double degree) 鍜?turnLeft(double degree) 浣挎満鍣ㄤ漢杞繃涓涓寚瀹氱殑瑙掑害銆?
ahead(double distance) 鍜?back(double distance) 浣挎満鍣ㄤ漢縐誨姩鎸囧畾鐨勫儚绱犵偣璺濈錛涜繖涓や釜鏂規硶鍦ㄦ満鍣ㄤ漢紕板埌澧欐垨鍙﹀涓涓満鍣ㄤ漢鏃跺嵆鍛婂畬鎴愩?
turnGunRight(double degree) 鍜?turnGunLeft(double degree) 浣跨偖鍙互鐙珛浜庡潶鍏嬭濺鐨勬柟鍚戣漿鍔ㄣ?
turnRadarRight(double degree) 鍜?turnRadarLeft(double degree) 浣跨偖涓婇潰鐨勯浄杈捐漿鍔紝杞姩鐨勬柟鍚戜篃鐙珛浜庣偖鐨勬柟鍚戯紙浠ュ強鍧﹀厠杞︾殑鏂瑰悜錛夈?
setAdjustGunForRobotTurn(boolean flag) 錛氬鏋?flag 琚緗垚 true錛岄偅涔堝潶鍏嬭濺杞姩鏃訛紝鐐繚鎸佸師鏉ョ殑鏂瑰悜銆?
setAdjustRadarForRobotTurn(boolean flag) 錛氬鏋?flag 琚緗垚 true錛岄偅涔堝潶鍏嬭濺錛堝拰鐐級杞姩鏃訛紝闆瘋揪浼氫繚鎸佸師鏉ョ殑鏂瑰悜銆?
setAdjustRadarForGunTurn(boolean flag) 錛氬鏋?flag 琚緗垚 true錛岄偅涔堢偖杞姩鏃訛紝闆瘋揪浼氫繚鎸佸師鏉ョ殑鏂瑰悜銆傝屼笖錛屽畠鎵ц鐨勫姩浣滃鍚岃皟鐢ㄤ簡 setAdjustRadarForRobotTurn(true) 銆?
getX() 鍜?getY() 鍙互鎹曟崏鍒版満鍣ㄤ漢褰撳墠鐨勫潗鏍囥?
getHeading() 銆?getGunHeading() 鍜?getRadarHeading() 鍙互寰楀嚭鍧﹀厠杞︺佺偖鎴栭浄杈懼綋鍓嶇殑鏂瑰悜錛岃鏂瑰悜鏄互瑙掑害琛ㄧず鐨勩?
getBattleFieldWidth() 鍜?getBattleFieldHeight() 鍙互寰楀埌褰撳墠榪欎竴鍥炲悎鐨勬垬鍦哄昂瀵搞?
fire(double power) 鍜?fireBullet(double power) 鐢ㄦ潵鍙戝皠鎸囧畾鑳介噺錛堢伀鍔涳級鐨勭偖寮廣傝皟鐢ㄧ殑 fireBullet() 鐗堟湰榪斿洖 robocode.Bullet 瀵硅薄鐨勪竴涓紩鐢紝璇ュ紩鐢ㄥ彲浠ョ敤浜庨珮綰ф満鍣ㄤ漢銆?
Robot 綾諱腑鍖呮嫭浜嗘墍鏈夎繖浜涗簨浠剁殑緙虹渷澶勭悊紼嬪簭銆備絾鏄紝鎮ㄥ彲浠ヨ鐩栧叾涓換浣曚竴涓滀粈涔堜篃涓嶅仛鐨勨濈己鐪佸鐞嗙▼搴忥紝鐒跺悗瀹炵幇鎮ㄨ嚜宸辯殑瀹氬埗琛屼負銆備笅闈㈡槸涓浜涜緝涓哄父鐢ㄧ殑浜嬩歡錛?
ScannedRobotEvent 銆傞氳繃瑕嗙洊 onScannedRobot() 鏂規硶鏉ュ鐞?ScannedRobotEvent 錛涘綋闆瘋揪媯嫻嬪埌鏈哄櫒浜烘椂錛屽氨璋冪敤璇ユ柟娉曘?
HitByBulletEvent 銆傞氳繃瑕嗙洊 onHitByBullet() 鏂規硶鏉ュ鐞?HitByBulletEvent 錛涘綋鏈哄櫒浜鴻鐐脊鍑諱腑鏃訛紝灝辮皟鐢ㄨ鏂規硶銆?
HitRobotEvent 銆傞氳繃瑕嗙洊 onHitRobot() 鏂規硶鏉ュ鐞?HitRobotEvent 錛涘綋鎮ㄧ殑鏈哄櫒浜哄嚮涓彟澶栦竴涓満鍣ㄤ漢鏃訛紝灝辮皟鐢ㄨ鏂規硶銆?
HitWallEvent 銆傞氳繃瑕嗙洊 onHitWall() 鏂規硶鏉ュ鐞?HitWallEvent 錛涘綋鎮ㄧ殑鏈哄櫒浜烘挒鍒板鏃訛紝灝辮皟鐢ㄨ鏂規硶銆?
鍥為〉棣?/font>
娓呭崟 1. Robocode 鐢熸垚鐨?Robot 浠g爜
package dw;
import robocode.*;
/**
* DWStraight - a robot by (developerWorks)
*/
public class DWStraight extends Robot
{
... // <<Area 1>>
/**
* run: DWStraight's default behavior
*/
public void run() {
... // <<Area 2>>
while(true) {
... // <<Area 3>>
}
}
... // <<Area 4>>
public void onScannedRobot(ScannedRobotEvent e) {
fire(1);
}
}
鎴戜滑鍙互鍦ㄨ繖鐗囩┖鐧介噷澹版槑綾諱綔鐢ㄥ煙鍙橀噺騫惰緗繖浜涘彉閲忕殑鍊箋傝繖浜涘彉閲忓彲浠ュ湪鏈哄櫒浜虹殑 run() 鏂規硶鍐呬互鍙婂叾浠栦竴浜涙偍鍙兘鍒涘緩鐨勫姪鎵嬫柟娉曞唴浣跨敤銆?
鎴樻枟綆$悊鍣ㄨ皟鐢?run() 鏂規硶嬋媧繪満鍣ㄤ漢銆傚吀鍨嬫儏鍐典笅錛宺un() 鏂規硶鍖呮嫭涓や釜鍖哄煙錛堝嵆鍦ㄦ竻鍗?1 涓寚鍑虹殑 Area 2 鍜?Area 3錛夛紝鎮ㄥ彲浠ュ湪榪欎袱鍧楃┖鐧介噷娣誨姞浠g爜銆傛偍鍦?Area 2 涓姞鍏ョ殑浠g爜姣忎釜鏈哄櫒浜哄疄渚嬪彧榪愯涓嬈°傝繖閮ㄥ垎浠g爜閫氬父鐢ㄤ簬浣挎満鍣ㄤ漢鍏堝浜庝竴縐嶉璁劇姸鎬佸悗鍐嶅紑濮嬫墽琛岄噸澶嶈涓恒?
榪欐槸鍏稿瀷鐨?run() 鏂規硶瀹炵幇鐨勭浜岄儴鍒嗐傚湪姝わ紝鎴戜滑灝嗗湪鏃犻檺 while 寰幆鍐呭鏈哄櫒浜哄彲鑳芥墽琛岀殑閲嶅琛屼負榪涜緙栫▼銆?
鎮ㄥ彲浠ュ湪榪欎竴鍖哄煙鍐呮坊鍔犳満鍣ㄤ漢鍦?run() 閫昏緫鍐呬嬌鐢ㄧ殑鍔╂墜鏂規硶銆傛偍涔熷彲浠ュ湪姝ゆ坊鍔犳偍鎯寵瑕嗙洊鐨勪換浣曚簨浠跺鐞嗙▼搴忋備緥濡傦紝娓呭崟 1 閲岀殑浠g爜澶勭悊 ScannedRobot 浜嬩歡錛屾瘡褰撻浄杈炬嫻嬪埌鏈哄櫒浜虹殑鏃跺欙紝鍙槸鐩存帴鍚戝叾鍙戝皠鐐脊銆?
娓呭崟 2. DWStraight 鏈哄櫒浜轟唬鐮佺殑澧炲姞閮ㄥ垎
package dw;
import robocode.*;
public class DWStraight extends Robot
{
public void run() {
turnLeft(getHeading());
while(true) {
ahead(1000);
turnRight(90);
}
}
public void onScannedRobot(ScannedRobotEvent e) {
fire(1);
}
public void onHitByBullet(HitByBulletEvent e) {
turnLeft(180);
}
}
涓轟簡浣挎満鍣ㄤ漢澶勪簬宸茬煡鐨勭姸鎬侊紝鎴戜滑閫氳繃 turnLeft(getHeading()) 浣垮畠杞埌 0 搴︾殑鏂瑰悜銆?
鍦ㄨ繖涓噸澶嶆х殑閮ㄥ垎錛屾垜浠嬌鐢ㄨ鍙?ahead(1000) 璁╂満鍣ㄤ漢灝藉叾鎵鑳藉悜鍓嶇Щ鍔ㄥ埌鏈榪滅殑鍦版柟銆傚綋鏈哄櫒浜烘挒鍒板鎴栧叾浠栨満鍣ㄤ漢鏃訛紝灝變細鍋滀笅鏉ャ傛帴鐫錛屾垜浠氳繃 turnRight(90) 浣垮畠鍚戝彸杞傚湪閲嶅鎵ц榪欎竴琛屼負鏃訛紝鏈哄櫒浜哄熀鏈笂鏄湪娌跨潃澧欐寜欏烘椂閽堟柟鍚戠Щ鍔ㄣ?
鍦ㄦ錛岄櫎澶勭悊鑷姩鐢熸垚鐨?ScannedRobot 浜嬩歡騫跺悜琚彂鐜扮殑鏈哄櫒浜虹洿鎺ュ皠鍑諱箣澶栵紝鎴戜滑榪樹細媯嫻?HitByBullet 浜嬩歡錛屽茍涓旇鏈哄櫒浜哄湪琚嚮涓殑鏃跺欒漿榪?180 搴︼紙娌塊『鏃墮拡鏂瑰悜鎴栭嗘椂閽堟柟鍚戯級銆?
鍥為〉棣?/font>
鍥?3. New Battle 瀵硅瘽妗?/font>
Robot 瀛愮被騫舵坊鍔犵敤浜庢瀯寤烘満鍣ㄤ漢鐨勬柊鍔熻兘銆俁obocode 鎻愪緵浜嗕竴涓彨鍋?AdvancedRobot 鐨?Robot 瀛愮被錛屽畠鍏佽寮傛 API 璋冪敤銆傝櫧鐒跺 AdvancedRobot 綾葷殑鎻忚堪瓚呭嚭浜嗘湰鏂囩殑鑼冨洿錛屼絾鎴戦紦鍔辨偍鍦ㄦ帉鎻′簡鍩烘湰鐨?Robot 綾葷殑鎿嶄綔鍚庯紝璇曢獙涓涓嬭繖涓珮綰х被銆?
璁捐 Robocode 鐨勭洰鐨?/font>
鍥為〉棣?/font>
鍥?4. Robocode 浠跨湡寮曟搸浣撶郴緇撴瀯
robocode.Robot 綾葷殑鏂規硶錛夈傚疄闄呬笂錛屾瘡涓満鍣ㄤ漢閮芥槸涓涓嫭绔嬬殑 Java 綰跨▼錛屽悓鏃?run() 鏂規硶鍐呭寘鍚簡姣忎釜綰跨▼涓婂皢瑕佹墽琛岀殑閫昏緫銆?
robocoode.Robot 綾繪墍鎻愪緵鐨?API銆傚吀鍨嬫儏鍐典笅錛岃繖灝嗛氳繃璋冪敤 Object.wait() 闃誨鏈哄櫒浜虹嚎紼嬨?
娓呭崟 3. 鎴樻枟綆$悊鍣ㄧ殑閫昏緫鐨勪吉浠g爜
while (round is not over) do
call the rendering subsystem to draw robots, bullets, explosions
for each robot do
wake up the robot
wait for it to make a blocking call, up to a max time interval
end for
clear all robot event queue
move bullets, and generate event into robots' event queue if applicable
move robots, and generate event into robots' event queue if applicable
do battle housekeeping and generate event into robots' event queue
if applicable
delay for frame rate if necessary
end do
SkippedTurnEvent 騫跺皢鍏跺姞鍏ユ満鍣ㄤ漢浜嬩歡闃熷垪涓紝鐢ㄦ潵閫氱煡楂樼駭鏈哄櫒浜恒?
鍥為〉棣?/font>
鍥為〉棣?/font>
]]>
聽聽聽聽鎴戝湪涓浗鐨勮繖涓ゅ勾鏉ワ紝宸ヤ綔涓渶澶х殑浜彈鏄埌鍥藉唴鍚勯珮鏍′笌瀛︾敓浠繘琛屼氦嫻併傝繖浜涜闂拰浜ゆ祦浣垮緱鎴戞湁鏈轟細涓庢垚鍗冧笂涓囩殑闈掑勾瀛︾敓灝變粬浠墍鍏沖績鐨勪簨涓氥佸墠閫旂瓑闂榪涜闈㈠闈㈢殑娌熼氥備腑鍥藉鐢熺殑鑱槑銆佸ソ瀛﹀拰涓婅繘緇欐垜鐣欎笅浜嗛潪甯告繁鍒葷殑鍗拌薄銆?銆銆
銆銆鍦ㄤ笌榪欎簺闈掑勾瀛︾敓鐨勪氦嫻佽繃紼嬩腑錛屾垜鍙戠幇鏈変竴浜涢棶棰樻槸澶у閮藉崄鍒嗗叧蹇冪殑銆傞偅浜涘凡緇忚幏寰楀浗澶栧ぇ瀛﹀瀛﹂噾鐨勫鐢燂紝澶ч兘甯屾湜鎴戣皥涓璋堝簲璇ュ浣曞害榪囪嚜宸卞湪緹庡浗鐨勫涔犵敓娑紱閭d簺鍐沖畾鐣欏湪鍥藉唴鍙戝睍鐨勫鐢燂紝闈炲父鍏沖績濡備綍紜畾涓涓紜殑鏂瑰悜錛屽茍浠ユ渶蹇殑閫熷害鍦ㄧ鐮斿拰瀛︿笟鏂歸潰鍙栧緱鎴愬姛錛涜繕鏈夐偅浜涘垰鍒氳笍榪涘ぇ瀛︽牎闂ㄧ殑瀛︾敓錛屽垯甯屾湜鎴戣兘璁茬粰浠栦滑涓浜涘涔犮佸仛浜虹殑緇忛獙涔嬭皥銆傛渶榪戯紝鏇存湁涓浜涘鐢熷叧蹇冪綉緇滀俊鎭駭涓氱殑鍙戝睍錛屽笇鏈涗簡瑙g編鍥界殑澶у鐢熸槸濡備綍鍒涗笟鍜岃嚧瀵岀殑銆傜湅鍒拌繖涔堝鍙屾復姹傜煡璇嗐佸厖婊″笇鏈涚殑鐪肩潧錛屾垜紿佺劧浜х敓浜嗕竴縐嶅啿鍔紝閭e氨鏄粰涓浗鐨勫鐢熶滑鍐欎竴灝佷俊錛屽皢鎴戜笌鍚屽浠湪浜ゆ祦榪囩▼涓駭鐢熺殑涓浜涙兂娉曚互鍙婃垜瑕佸涓浗瀛︾敓鐨勪竴浜涘繝鍛婂啓鍑烘潵錛屽府鍔╀粬浠湪鏈潵鐨勭暀瀛︺佸伐浣滄垨鑰呭垱涓氱殑榪囩▼涓兘澶熶漢鏍兼洿瀹岀編錛岀敓媧繪洿欏哄埄錛屼簨涓氭洿鎴愬姛銆?銆銆
鍧氬畧璇氫俊銆佹鐩寸殑鍘熷垯
銆銆鎴戝湪鑻規灉鍏徃宸ヤ綔鏃訛紝鏇炬湁涓浣嶅垰琚垜鎻愭嫈鐨勭粡鐞嗭紝鐢變簬鍙楀埌涓嬪睘鐨勬壒璇勶紝闈炲父娌撫鍦拌鎴戝啀鎵句竴涓漢鏉ユ帴鏇夸粬銆傛垜闂粬錛氣滀綘璁や負浣犵殑闀垮鏄粈涔堬紵鈥濅粬璇達細鈥滄垜鑷俊鑷繁鏄竴涓潪甯告鐩寸殑浜恒傗濇垜鍛婅瘔浠栵細鈥滃綋鍒濇垜鎻愭嫈浣犲仛緇忕悊錛屽氨鏄洜涓轟綘鏄竴涓叕姝f棤縐佺殑浜恒傜鐞嗙粡楠屽拰娌熼氳兘鍔涙槸鍙互鍦ㄦ棩鍚庡伐浣滀腑瀛︿範鐨勶紝浣嗕竴棰楁鐩寸殑蹇冩槸鏃犱環鐨勩傗濇垜鏀寔浠栫戶緇共涓嬪幓錛屽茍鍦ㄧ鐞嗗拰娌熼氭妧宸ф柟闈㈢粰浜堜粬寰堝鎸囩偣鍜屽府鍔┿傛渶緇堬紝 浠栦笉璐熶紬鏈涳紝鎴愪負涓涓嚭鑹茬殑綆$悊浜烘墠銆?銆銆
銆銆涓庝箣鐩稿弽錛屾垜鏇鵑潰璇曡繃涓浣嶆眰鑱岃呫備粬鍦ㄦ妧鏈佺鐞嗘柟闈㈤兘鐩稿綋鍑鴻壊銆備絾鏄紝鍦ㄨ皥璇濅箣浣欙紝浠栬〃紺猴紝濡傛灉鎴戝綍鍙栦粬錛屼粬鍙互鎶婂湪鍘熸潵鍏徃宸ヤ綔鏃剁殑涓欏瑰彂鏄庡甫榪囨潵銆傞殢鍚庝粬浼間箮瑙夊療鍒拌繖鏍瘋鏈変簺涓嶅Ε錛岀壒鍋氬0鏄庯細閭d簺宸ヤ綔鏄粬鍦ㄤ笅鐝箣鍚庡仛鐨勶紝浠栫殑鑰佹澘騫朵笉鐭ラ亾銆傝繖涓鐣皥璇濅箣鍚?錛屽浜庢垜鑰岃█錛屼笉璁轟粬鐨勮兘鍔涘拰宸ヤ綔姘村鉤鎬庢牱錛屾垜閮借偗瀹氫笉浼氬綍鐢ㄤ粬銆傚師鍥犳槸浠栫己涔忔渶鍩烘湰鐨勫涓栧噯鍒欏拰鏈璧風爜鐨勮亴涓氶亾寰鳳細鈥滆瘹瀹炩濆拰鈥滆淇$敤鈥濄傚鏋滈泧鐢ㄨ繖鏍風殑浜猴紝璋佽兘淇濊瘉浠栦笉浼氬湪榪欓噷宸ヤ綔涓孌墊椂闂村悗錛屾妸鍦ㄨ繖閲岀殑鎴愭灉涔熷綋浣滄墍璋撯滀笟浣欎箣浣溾濊屽彉鎴愬悜鍏朵粬鍏徃璁ㄥソ鐨勨滆礎鍝佲濆憿錛熻繖璇存槑錛屼竴涓漢鍝佷笉瀹屽杽鐨勪漢鏄笉鍙兘鎴愪負涓涓湡姝f湁鎵浣滀負鐨勪漢鐨勩?
銆銆鍦ㄧ編鍥斤紝涓浗瀛︾敓鐨勫嫟濂嬪拰浼樼鏄嚭浜嗗悕鐨勩傛浘緇忎竴搴︽槸緹庡浗鍚勫悕鏍℃渶嬈㈣繋鐨勭暀瀛︾敓緹や綋錛岃屾渶榪戯紝鍗存湁涓浜涘彉鍖栥傚師鍥犲緢綆鍗曪紝鏌愪簺涓浗瀛︾敓鎷跨潃璇誨崥澹殑濂栧閲戝埌浜嗙編鍥斤紝鍙竴鏃︽壘鍒板伐浣滄満浼氾紝浠栦滑灝變細椹笂鐢寵紱誨紑瀛︽牎錛屽皢鑷繁鏇劇粡鎵胯瑕佸畬鎴愮殑瀛︿綅鍜岀爺絀舵姏鍦ㄤ竴杈廣傝繖縐嶈█琛屼笉涓鐨勫仛娉曞凡緇忎嬌寰楃編鍥戒竴閮ㄥ垎鏁欐巿瀵逛腑鍥藉鐢熺殑璇氫俊浜х敓浜嗘鐤戙傚簲璇ユ寚鍑猴紝鏈夎繖縐嶈涓虹殑涓浗瀛︾敓鏄皯鏁幫紝鐒惰屽氨鏄繖鏍風殑鈥滃皯鏁扳濓紝宸茬粡璁╀腑鍥藉鐢熺殑鍚嶈獕鍙楀埌浜嗘瀬澶х殑鎹熷銆傚彟澶栵紝鐩墠緹庡浗鏈変簺鏁欐巿涓嶆効鐞嗕細閮ㄥ垎涓浗瀛︾敓鐨勬帹鑽愪俊錛屽洜涓轟粬浠煡閬撹繖浜涙帹鑽愪俊鏍規湰灝卞嚭鑷鐢熻嚜宸變箣鎵嬶紝宸叉棤鍙傝冩у彲璦銆傝繖涔熸槸璇氫俊鍙楀埌鎹熷浠ュ悗鐨勫繀鐒剁粨鏋溿?銆銆
銆銆鎴戝湪寰蔣鐮旂┒闄篃鏇劇鍒拌繃綾諱技鐨勯棶棰樸備竴浣嶆潵榪欓噷瀹炰範鐨勫鐢燂紝鏈変竴嬈″嚭涔庢剰鏂欏湴鎶ュ憡浜嗕竴涓潪甯稿ソ鐨勭爺絀剁粨鏋溿備絾鏄紝浠栧仛鐨勭爺絀剁粨鏋滃埆浜哄嵈鏃犳硶閲嶅銆傚悗鏉ワ紝浠栫殑鑰佹澘鍙戠幇錛岃繖涓鐢熷瀹為獙鏁版嵁榪涜浜嗘寫閫夛紝鍙暀涓嬩簡閭d簺鍚堜箮鏈浣崇粨鏋滅殑鏁版嵁錛岃岃垗寮冧簡閭d簺鈥滀笉澶ソ鈥濈殑鏁版嵁銆傛垜璁や負錛岃繖涓鐢熸案榪滀笉鍙兘瀹炵幇鐪熸鎰忎箟鐨勫鏈獊鐮達紝涔熶笉鍙兘鎴愪負涓鍚嶇湡姝e悎鏍肩殑鐮旂┒浜哄憳銆?銆銆
銆銆鏈鍚庢兂鎻愮殑鏄竴浜涘枩嬈㈣椽灝忎究瀹滅殑浜恒備粬浠敤瀛︽牎鎴栧叕鍙哥殑鐢佃瘽鎵撶浜洪暱閫斻佸鎶ラ攢鍑虹杞︾エ銆備篃璁告湁浜鴻涓猴紝瀛︾敓浠ユ垚緇┿佷簨涓氫負閲嶏紝鍏朵粬緇嗚妭鍙槸涓浜涘皬浜嬶紝闅忓績鎵嬈插湴鍋氫簡錛屼篃娌′粈涔堝ぇ涓嶄簡鐨勩傜劧鑰岋紝灝辨槸閭d簺韜竟鐨勬墍璋撯滃皬浜嬧濓紝寰寰鎴愪負涓涓漢濉戦犱漢鏍煎拰縐瘡璇氫俊鐨勫叧閿備竴浜涜椽灝忎究瀹溿佽嶅皬鑱槑鐨勮涓哄彧浼氭妸鑷繁瀹氭т負涓涓椽鍥懼皬鍒┿佹病鏈夊嚭鎭殑浜虹殑褰㈣薄錛屾渶緇堝洜灝忓け澶с備腑鍥芥湁鈥滃嬁浠ユ伓灝忚屼負涔嬧濈殑鍙よ錛屽緢鍊煎緱璁板彇銆?銆銆
鐢熸椿鍦ㄧ兢浣撲箣涓?/b>
涓庡ぇ澶氭暟緹庡浗瀛︾敓姣旇緝鑰岃█錛屼腑鍥藉鐢熺殑琛ㄨ揪鑳藉姏銆佹矡閫氳兘鍔涘拰鍥㈤槦綺劇瑕佺浉瀵規瑺緙轟竴浜涖傝繖涔熻鏄敱浜庢枃鍖栬儗鏅拰鏁欒偛浣撳埗鐨勪笉鍚岃岄犳垚鐨勩備粖澶╋紝褰撴垜浠潰瀵逛竴涓鍦ㄨ蛋鍚戦珮搴﹀叏鐞冨寲鐨勭ぞ浼氭椂錛岀敓媧誨湪緹や綋涔嬩腑錛屽仛鍑烘洿濂界殑琛ㄧ幇錛屽緱鍒版洿澶氱殑鏀惰幏錛屾槸灝や負閲嶈鐨勩?銆銆
銆銆琛ㄨ揪鍜屾矡閫氱殑鑳藉姏鏄潪甯擱噸瑕佺殑銆備笉璁轟綘鍋氬嚭浜嗘庢牱浼樼鐨勫伐浣滐紝涓嶄細琛ㄨ揪錛屾棤娉曡鏇村鐨勪漢鍘葷悊瑙e拰鍒嗕韓錛岄偅灝卞嚑涔庣瓑浜庣櫧鍋氥傛墍浠ワ紝鍦ㄥ涔犻樁孌碉紝浣犱笉鍙互鍙敓媧誨湪涓涓漢鐨勪笘鐣屼腑錛岃屽簲褰撳敖閲忓浼氫笌鍚勭被浜轟氦寰鍜屾矡閫氾紝涓誨姩琛ㄨ揪鑷繁瀵瑰悇縐嶄簨鐗╃殑鐪嬫硶鍜屾剰瑙侊紝鐢氳嚦鍦ㄥ叕浼楅泦浼氭椂鍙戣〃婕旇錛岄敾鐐艱嚜宸辯殑琛ㄨ揪鑳藉姏銆?銆銆
銆銆琛ㄨ揪鑳藉姏緇濅笉鍙槸浣犵殑鈥滃彛鎵嶁濄傚搱浣涘ぇ瀛︾殑Ambady鏁欐巿鏈榪戝仛榪囦竴涓潪甯告湁瓚g殑瀹為獙錛屼粬璁╀袱緇勫鐢熷垎鍒瘎浼板嚑浣嶆暀鎺堢殑鎺堣璐ㄩ噺銆備粬鎶婅繖鍑犱綅鏁欐巿鐨勮璇懼綍鍍忓甫鍏堟棤澹板湴鏀句袱縐掗挓緇欎竴緇勫鐢熺湅錛屽緱鍑轟竴濂楄瘎浼扮粨鏋溿傜劧鍚庝笌閭d簺宸茬粡鍚繃榪欏嚑浣嶆暀鎺堝嚑涓湀璁茶鐨勫鐢熺殑緇撴灉榪涜瀵規瘮錛屼袱涓皬緇勭殑緇撹绔熺劧鎯婁漢鐨勭浉浼箋傝繖琛ㄦ槑錛屽湪琛ㄨ揪鑷繁鎬濇兂鐨勮繃紼嬩腑錛岄潪璇█琛ㄨ揪鏂瑰紡鍜岃璦鍚屾牱閲嶈錛屾湁鏃朵綔鐢ㄧ敋鑷蟲洿鍔犳槑鏄俱傝繖閲屾墍璁茬殑闈炶璦琛ㄨ揪鏂瑰紡鏄寚浜虹殑浠〃銆佷婦姝€佽姘斻佸0璋冨拰琛ㄦ儏絳夈傚洜涓轟粠榪欎簺鏂歸潰錛屼漢浠彲浠ユ洿鐩磋銆佹洿褰㈣薄鍦板垽鏂綘涓轟漢銆佸仛浜嬬殑鑳藉姏錛岀湅鍑轟綘鐨勮嚜淇″拰鐑儏錛屼粠鑰岃幏寰楀崄鍒嗛噸瑕佺殑鈥滅涓鍗拌薄鈥濄?銆銆
銆銆瀵逛簬涓涓泦浣撱佷竴涓叕鍙革紝鐢氳嚦鏄竴涓浗瀹訛紝鍥㈤槦綺劇閮芥槸闈炲父鍏抽敭鎬х殑銆傚井杞叕鍙稿湪緹庡浗浠ョ壒孌婄殑鍥㈤槦綺劇钁楃О銆傚儚Windows2000榪欐牱鐨勪駭鍝佺殑鐮斿彂錛屾湁瓚呰繃3000鍚嶅紑鍙戝伐紼嬪笀鍜屾祴璇曚漢鍛樺弬涓庯紝鍐欏嚭浜?000涓囪浠g爜銆傛病鏈夐珮搴︾粺涓鐨勫洟闃熺簿紲烇紝娌℃湁鍏ㄩ儴鍙備笌鑰呯殑榛樺涓庡垎宸ュ悎浣滐紝榪欓」宸ョ▼鏄牴鏈笉鍙兘瀹屾垚鐨勩?銆銆
銆銆浠ュ墠鎴戝湪鍒殑鍏徃鏃跺嵈涔熸浘瑙佸埌榪囩浉鍙嶇殑鐜拌薄銆備竴欏瑰伐紼嬪竷緗笅鏉ワ紝澶у鏄庢槑鐭ラ亾鏃犳硶瀹屾垚錛屼絾閮藉績鐓т笉瀹o紝涓嶅憡璇夎佹澘銆傚洜涓哄弽姝d篃鍋氫笉瀹岋紝澶у绱㈡т篃涓嶅姫鍔涘幓鍋氫簨錛屽嵈鑺辨洿澶氱殑鏃墮棿鍘葷畻璁℃庝箞鎶婅繖欏瑰伐紼嬬殑澶辮觸鎬姜鍒板埆浜鴻韓涓婂幓銆傚氨鏄繖浜涗漢鍜岃繖鏍風殑宸ヤ綔浣滈錛屽嚑涔庢妸榪欏鍏徃鎷栧灝銆?銆銆
銆銆涓轟簡鍩瑰吇鍥㈤槦綺劇錛屾垜寤鴻鍚屽浠湪璇諱功涔嬩綑縐瀬鍙傚姞鍚勭紺句細鍥綋鐨勫伐浣溿傚湪涓庝粬浜哄垎宸ュ悎浣溿佸垎浜垚鏋溿佷簰鍔╀簰鎯犵殑榪囩▼涓紝浣犱滑鍙互浣撲細鍥㈤槦綺劇鐨勯噸瑕佹с?
銆銆鍦ㄥ涔犺繃紼嬩腑錛屼綘鍗冧竾涓嶈涓嶆効鎰忔妸濂界殑鎬濊礬銆佹兂娉曞拰緇撴灉涓庡埆浜哄垎浜紝鎷呭績鍒漢璧板埌浣犲墠闈㈢殑鎯蟲硶鏄笉鍋ュ悍鐨勶紝涔熸棤鍔╀簬浣犵殑鎴愬姛銆傛湁涓鍙ヨ皻璇錛屸滀綘浠樺嚭鐨勮秺澶氾紝浣犲緱鍒扮殑瓚婂鈥濄傝瘯鎯籌紝濡傛灉浣犵殑琛屼負璁╀漢瑙夊緱鈥滀綘鐨勬槸鎴戠殑錛屾垜鐨勮繕鏄垜鐨勨濓紝褰撲綘闇瑕佸府蹇欐椂錛屼綘璁や負鍒漢浼氭潵甯姪浣犲悧錛熷弽涔嬶紝濡傛灉浣犳椂甯告叿鎱ㄥ湴甯姪鍒漢錛岄偅浣犳槸涓嶆槸浼氬緱鍒版洿澶氫漢鐨勫洖鎶ュ憿錛?銆銆
鍦ㄥ洟闃熶箣涓紝瑕佸媷浜庢壙璁や粬浜虹殑璐$尞銆傚鏋滃熷姪浜嗗埆浜虹殑鏅烘収鍜屾垚鏋滐紝灝卞簲璇ュ0鏄庛傚鏋滃緱鍒頒簡浠栦漢鐨勫府鍔╋紝灝卞簲璇ヨ〃紺烘劅璋€傝繖涔熸槸鍥㈤槦綺劇鐨勫熀鏈綋鐜般?br />鍋氫竴涓富鍔ㄧ殑浜?銆銆
銆銆涓夊崄騫村墠錛屼竴涓伐紼嬪笀姊﹀瘣浠ユ眰鐨勭洰鏍囧氨鏄繘鍏ョ鎶鏈棰嗗厛鐨処BM銆傞偅鏃禝BM瀵逛漢鎵嶇殑瀹氫箟鏄竴涓湁涓撲笟鐭ヨ瘑鐨勩佸煁澶磋嫤騫茬殑浜恒傛枟杞槦縐伙紝浜嬬墿鍙戝睍鍒頒粖澶╋紝浜轟滑瀵逛漢鎵嶇殑鐪嬫硶宸查愭鍙戠敓浜嗗彉鍖栥傜幇鍦紝寰堝鍏徃鎵娓存眰鐨勪漢鎵嶆槸縐瀬涓誨姩銆佸厖婊$儹鎯呫佺伒媧昏嚜淇$殑浜恒?銆銆
銆銆浣滀負褰撲唬涓浗鐨勫ぇ瀛︾敓錛屼綘搴旇涓嶅啀鍙槸琚姩鍦扮瓑寰呭埆浜哄憡璇変綘搴旇鍋氫粈涔堬紝鑰屾槸搴旇涓誨姩鍘諱簡瑙h嚜宸辮鍋氫粈涔堬紝騫朵笖瑙勫垝瀹冧滑錛岀劧鍚庡叏鍔涗互璧村湴鍘誨畬鎴愩傛兂鎯充粖澶╀笘鐣屼笂鏈鎴愬姛鐨勯偅浜涗漢錛屾湁鍑犱釜鏄敮鍞璇恒佺瓑浜哄惄鍜愮殑浜猴紵瀵瑰緟鑷繁鐨勫涓氬拰鐮旂┒欏圭洰錛屼綘闇瑕佷互涓涓瘝浜插瀛╁瓙閭f牱鐨勮矗浠誨績鍜岀埍蹇冿紝鍏ㄥ姏鎶曞叆錛屼笉鏂姫鍔涖傛灉鐪熷姝わ紝渚挎病鏈変粈涔堢洰鏍囨槸涓嶈兘杈懼埌鐨勩?銆銆
銆銆涓涓Н鏋佷富鍔ㄧ殑浜鴻繕搴旇铏氬績鍚彇浠栦漢鐨勬壒璇勫拰鎰忚銆傚叾瀹烇紝榪欎篃鏄竴縐嶈繘鍙栧績鐨勪綋鐜般備笉鑳借櫄蹇冩帴鍙楀埆浜虹殑鎵硅瘎錛屽茍浠庝腑姹插彇鏁欒錛屽氨涓嶅彲鑳芥湁鏇村ぇ鐨勮繘姝ャ傛瘮灝旂洊鑼ㄦ浘緇忓鍏徃鎵鏈夊憳宸ヨ榪囷細鈥滃鎴風殑鎵硅瘎姣旇禋閽辨洿閲嶈銆備粠瀹㈡埛鐨勬壒璇勪腑錛屾垜浠彲浠ユ洿濂藉湴姹插彇澶辮觸鐨勬暀璁紝灝嗗畠杞負鎴愬姛鐨勫姩鍔涖傗?銆銆
銆銆闄や簡铏氬績鎺ュ彈鍒漢鐨勬壒璇勶紝浣犺繕搴旇鍔姏瀵繪壘涓浣嶄綘鐗瑰埆灝婃暚鐨勮壇甯堛傝繖浣嶈壇甯堝簲璇ユ槸鐩存帴鏁欏浣犵殑鑰佸笀浠ュ鐨勪漢錛岃繖鏍風殑浜烘洿鑳藉瑙傚湴緇欎綘涓浜涘繝鍛娿傝繖浣嶈壇甯堥櫎浜嗗彲浠ュ湪瀛﹁瘑涓婃暀瀵間綘涔嬪錛岃繕鍙互鍦ㄥ叾浠栦竴浜涙柟闈㈠浣犳湁鎵鎸囩偣錛屽寘鎷負浜哄涓栵紝鐪嬮棶棰樼殑鐪煎厜錛屽簲瀵圭獊鍙戜簨浠剁殑鎶鑳界瓑絳夈?
銆銆鎴戜互鍓嶅湪鑻規灉鍏徃璐熻矗涓涓爺絀墮儴闂ㄦ椂錛屽氨鏇炬湁騫告壘鍒拌繖鏍蜂竴浣嶈壇甯堛傚綋鏃訛紝浠栨槸璐熻矗鑻規灉鍏徃鍏ㄧ悆榪愪綔鍜岀敓浜т笟鍔$殑楂樼駭鍓昏錛屼粬鍦ㄤ簨涓氬彂灞曟柟闈㈢粰鎴戠殑璁稿鏁欒浠ゆ垜緇堣韓鍙楃泭銆傚鏋滄湁榪欐牱鐨勪漢緇欎綘甯姪 錛岄偅浣犳垚闀跨殑閫熷害涓瀹氫細姣斿埆浜烘洿蹇竴浜涖?銆銆
銆銆涓浗瀛︾敓澶у姣旇緝鍚搫銆佸緹烇紝涓嶅お涔犳儻鍋氳嚜鎴戞帹閿銆備絾鏄紝瑕佹兂鎶婃彙浣忚漿鐬嵆閫濈殑鏈轟細錛屽氨蹇呴』瀛︿細璇存湇浠栦漢錛屽悜鍒漢鎺ㄩ攢鑷繁鎴栬嚜宸辯殑瑙傜偣銆傚湪璇存湇浠栦漢涔嬪墠錛岃鍏堣鏈嶈嚜宸便備綘鐨勬縺鎯呭姞涓婃墠鏅哄線寰鎶樺皠鍑轟綘鐨勬綔鍔涳紝涓涓ソ鐨勮嚜鎴戞帹閿絳栫暐鍙互浠や簨鎯呯殑鍙戝睍閿︿笂娣昏姳銆?
銆銆渚嬪錛屾湁涓嬈℃垜鏀跺埌浜嗕竴浠藉緢鐗規畩鐨勬眰鑱岀敵璇蜂功銆備笉鍚屼簬宸插線澶у鏁版眰鑱岃咃紝榪欎綅鐢寵浜虹殑姹傝亴璧勬枡涓寘鎷簡浠栫殑鑷垜浠嬬粛銆佷粬瀵瑰井杞爺絀墮櫌鐨勫悜寰銆佷互鍙婁粬涓轟粈涔堣涓鴻嚜宸辨槸鍚堥傜殑浜洪夛紝姝ゅ榪樻湁浠栧凡緇忓彂琛ㄧ殑璁烘枃銆佽佸笀鐨勬帹鑽愪俊鍜屼粬甯屾湜鏉ュ井杞綔鐨勮棰樼瓑銆傚敖綆′粬姣曚笟鐨勫鏍′笉鏄腑鍥芥渶鏈夊悕鐨勫鏍★紝浣嗕粬鐨勮嚜鎴戞帹閿濂忔晥浜嗐傛垜浠庤繖浜涙枃浠朵腑鐪嬪埌浜嗕粬鐨勭儹鎯呭拰璁ょ湡銆傚湪鎴戦潰璇曚粬鏃訛紝浠栧張閫掍氦浜嗕竴浠芥洿鍏呭垎鐨勪釜浜鴻祫鏂欍傛渶鍚庯紝褰撴垜闂粬鏈夋病鏈夐棶棰樿闂垜鏃訛紝浠栧弽闂垜錛岋細鈥滀綘瀵規垜榪樻湁娌℃湁浠諱綍鐨勪繚鐣欙紵鈥濆綋鏃訛紝鎴戠殑紜浠栬兘鍚﹁繘鍏ユ柊鐨勭爺絀墮鍩熸湁鐤戣檻錛屼簬鏄氨榪涗竴姝ラ棶浜嗕粬涓浜涜繖鏂歸潰鐨勯棶棰樸備粬涓懼嚭浜嗕袱涓緢鏈夎鏈嶅姏鐨勪緥瀛愩傛渶鍚庯紝鎴戜滑闆囩敤浜嗚繖鍚嶅簲鑱樿呫備粬鐜板湪鍋氬緱闈炲父鍑鴻壊銆?銆銆
鎸戞垬鑷垜銆佸紑鍙戣嚜韜綔鍔?銆銆
銆銆鎴戝湪鑻規灉鍏徃宸ヤ綔鐨勬椂鍊欙紝鏈変竴澶╋紝鑰佹澘紿佺劧闂垜浠涔堟椂鍊欏彲浠ユ帴鏇夸粬鐨勫伐浣滐紵鎴戦潪甯稿悆鎯婏紝琛ㄧず鑷繁緙轟箯鍍忎粬閭f牱鐨勭鐞嗙粡楠屽拰鑳藉姏銆備絾鏄粬鍗磋錛岃繖浜涚粡楠屾槸鍙互鍩瑰吇鍜岀Н绱殑錛岃屼笖浠栧笇鏈涙垜鍦ㄤ袱騫翠箣鍚庡氨鍙互鍋氬埌銆傛湁浜嗚繖鏍風殑鎻愮ず鍜岄紦鍔憋紝鎴戝紑濮嬫湁鎰忚瘑鍦板姞寮鴻嚜宸卞湪榪欐柟闈㈢殑瀛︿範鍜屽疄璺點傛灉鐒訛紝鎴戠湡鐨勫湪涓ゅ勾涔嬪悗鎺ユ浛浜嗕粬鐨勫伐浣溿傛垜涓漢璁や負錛屼竴涓漢鐨勯瀵肩礌璐ㄥ浜庝粬灝嗘潵鐨勬不瀛︺佺粡鍟嗘垨浠庢斂閮芥槸鍗佸垎閲嶈鐨勩傚湪浠諱綍鏃跺欍佷換浣曠幆澧冮噷錛屾垜浠兘搴旇鏈夋剰璇嗗湴鍩瑰吇鑷繁鐨勯瀵兼墠鑳姐傚悓鏃訛紝鎴戝緩璁綘緇欒嚜宸變竴浜涙満浼氬睍紺鴻繖鏂歸潰鐨勮兘鍔涳紝鎴栬鍍忔垜涓鏍鳳紝浣犱細鎯婅鑷繁鍦ㄨ繖涓鏂歸潰鐨勬綔鍔涜繙榪滆秴榪囦簡鑷繁鐨勬兂璞°?銆銆
銆銆緇欒嚜宸辮瀹氱洰鏍囨槸涓浠跺崄鍒嗛噸瑕佺殑浜嬫儏銆傜洰鏍囪瀹氳繃楂樺浐鐒朵笉鍒囧疄闄咃紝浣嗘槸鐩爣鍗冧竾涓嶅彲瀹氬緱澶綆銆傚湪浜屽崄涓涓栫邯錛岀珵浜夊凡緇忔病鏈夌枂鐣岋紝浣犲簲璇ユ斁寮鎬濈淮錛岀珯鍦ㄤ竴涓洿楂樼殑璧風偣錛岀粰鑷繁璁懼畾涓涓洿鍏鋒寫鎴樻х殑鏍囧噯錛屾墠浼氭湁鍑嗙‘鐨勫姫鍔涙柟鍚戝拰騫塊様鐨勫墠鏅紝鍒囦笉鍙仛鈥滀簳搴曚箣铔欌濄傚彟澶栵紝鍙湪涓鎵瀛︽牎鍙栧緱濂芥垚緇┿佸ソ鍚嶆灝辮涓鴻嚜宸卞凡緇忓姛鎴愬悕灝辨槸鍙瑧鐨勶紝瑕佺煡閬擄紝灞卞鏈夊北錛屼漢涓婃湁浜猴紝鑰屼笖錛屼笉鍚屽湴鏂圭殑琛¢噺鏍囧噯鍙堜笉涓 鏍楓傛墍浠ワ紝鍦ㄨ绔嬬洰鏍囨柟闈紝鍗冧竾涓嶈鏈夆滃畞涓洪浮棣栵紝涓嶄負鐗涘悗鈥濈殑鎬濇兂銆?銆銆
銆銆涓涓竴嫻佺殑浜轟笌涓涓竴鑸殑浜哄湪涓鑸棶棰樹笂鐨勮〃鐜板彲鑳戒竴鏍鳳紝浣嗘槸鍦ㄤ竴嫻侀棶棰樹笂鐨勮〃鐜板垯浼氭湁澶╁¥涔嬪埆銆傜編鍥借憲鍚嶄綔瀹跺▉寤?amp;#8226;紱忓厠綰寵榪囷細鈥滀笉瑕佺灝藉叏鍔涘幓鍜屼綘鐨勫悓鍍氱珵浜夈備綘鏇村簲璇ュ湪涔庣殑鏄細浣犺姣旂幇鍦ㄧ殑浣犳洿寮恒傗濅綘搴旇姘歌繙緇欒嚜宸辮绔嬩竴浜涘緢鍏鋒寫鎴樻с佷絾騫墮潪涓嶅彲鍙婄殑鐩爣銆?
鍦ㄧ‘绔嬪皢鏉ヤ簨涓氱殑鐩爣鏃訛紝涓嶈蹇樹簡鎵績鑷棶錛氣滆繖鏄笉鏄垜鏈鐑埍鐨勪笓涓氾紵鎴戞槸鍚︽効鎰忓叏鍔涙姇鍏ワ紵鈥濇垜甯屾湜浣犱滑鑳藉瀵硅嚜宸遍夋嫨鎵浠庝簨鐨勫伐浣滃厖婊℃縺鎯呭拰鎯寵薄鍔涳紝瀵瑰墠榪涢斾腑鍙兘鍑虹幇鐨勫悇縐嶈壈闅鵑櫓闃繪棤鎵鐣忔儳銆傝皥鍒板宸ヤ綔鐨勭儹鐖憋紝鎴戣璇嗙殑涓浣嶅井杞殑鐮旂┒鍛樻浘緇忚鎴戞繁鏈夋劅瑙︺備粬緇忓父鍛ㄦ湯寮杞﹀嚭闂紝璇村幓瑙佲滃コ鏈嬪弸鈥濓紝鍚庢潵錛屼竴嬈″伓鐒舵満浼氭垜鍦ㄥ姙鍏閲岀湅瑙佷粬錛岄棶浠栵細鈥滃コ鏈嬪弸鍦ㄥ摢閲岋紵鈥濅粬絎戠潃鎸囩潃鐢佃剳璇達細鈥滃氨鏄ス鍛銆?鈥?
銆銆瀵逛簬宸ヤ綔鐨勭儹鐖憋紝姣斿皵•鐩栬尐涔熸浘鏈夎繃闈炲父綺懼僵鐨勯槓榪幫紝浠栬錛氣滄瘡澶╂棭鏅ㄩ啋鏉ワ紝涓鎯沖埌鎵浠庝簨鐨勫伐浣滃拰鎵寮鍙戠殑鎶鏈皢浼氱粰浜虹被鐢熸椿甯︽潵鐨勫法澶у獎鍝嶅拰鍙樺寲錛屾垜灝變細鏃犳瘮鍏村鍜屾縺鍔ㄣ傗?銆銆
銆銆鍑犱釜鏈堝墠錛屻婂寳浜潚騫存姤銆嬩笂鏇炬湁涓鍦烘帰璁ㄦ瘮灝?amp;#8226;鐩栬尐鍜屼繚灝?amp;#8226;鏌療閲戣皝鏇翠紵澶х殑璁ㄨ銆傜敱浜庝粠灝忓湪緹庡浗闀垮ぇ錛屾垜騫朵笉鐭ラ亾淇濆皵鍜屼粬鐨勪簨榪廣備絾鏄紝鎴戦潪甯歌禐鍚屼繚灝旂殑榪欐鍚嶈█錛氣滀漢鏈瀹濊吹鐨勪笢瑗挎槸鐢熷懡錛岀敓鍛藉睘浜庢垜浠彧鏈変竴嬈°備漢鐨勪竴鐢熷簲褰撹繖鏍峰害榪囷紝褰撲粬鍥為寰浜嬬殑鏃跺欙紝涓嶅洜铏氬害騫村崕鑰屾倲鎭紝涔熶笉鍥犵紕屾棤涓鴻岀緸鎰р︹︹濇墍浠ワ紝浣犲簲褰撻夋嫨涓涓綘鐪熷績鐑埍鐨勪簨涓氾紝涓嶆柇鍦版寫鎴樿嚜鎴戙佸畬鍠勮嚜鎴戯紝璁╄嚜宸辯殑涓鐢熻繃寰楃簿褰╁拰鍏呭疄銆?
銆銆
瀹㈣銆佺洿鎴簡褰撶殑娌熼?/b>
銆銆鏈変竴嬈★紝涓浣嶄腑鍥界殑澶у鏁欐巿鎵懼埌鎴戯紝甯屾湜鎴戝府浠栨壘涓浣嶅浗澶栫殑涓撳鍦ㄤ粬緇勭粐鐨勪細璁笂鍘誨仛涓婚婕旇錛屾湯浜嗚繕鐗規剰鍔犱簡涓鍙ワ紝鏈濂芥槸涓涓磱浜恒傛垜寰堜笉浠ヤ負鐒跺湴瀵逛粬璇達細鈥滆繖涓鍩熸渶鍏鋒潈濞佺殑浜哄+灝辨槸鍦ㄥ寳浜殑涓涓腑鍥戒漢錛屼負浠涔堜綘涓瀹氳鎵句竴浣嶆磱浜哄憿錛熲濅粬琛ㄩ潰涓婂悓鎰忔垜鐨勮娉曪紝浣嗘槸浠栦粛鐒惰浜嗕竴涓編鍥戒漢鏉ュ仛榪欎釜婕旇錛岀粨鏋滄晥鏋滃緢宸傛墍浠ワ紝鎴戜滑涓嶅簲璇ラ櫡鍏ョ洸鐩殑宕囨磱鎯呯粨銆傛垜浠簲璇ョ敤瀹㈣鐨勭溂鍏夋潵鍒ゆ柇浜嬬墿錛岃屼笉鏄互浠栫殑鑲よ壊鎴栦粬鐨勫眳浣忓湴鏉ュ喅瀹氥?銆銆
鏈変竴鍙ヨ瘽璇達紝鈥滅湡鐞嗗線寰鎺屾彙鍦ㄥ皯鏁頒漢鎵嬩腑鈥濄傝繖鍙ヨ瘽鐨勬剰鎬濇槸錛屾垜浠湅闂搴旇鏈夎嚜宸辯殑鐪煎厜錛屾湁鐙珛鎬濊冪殑鑳藉姏錛屼笉涓瀹氬ぇ澶氭暟浜鴻鍙殑錛屾垨鏌愪釜鏉冨▉璇寸殑錛屽氨鏄鐨勩備笉璁烘槸鍋氬闂佹悶鐮旂┒榪樻槸緇忓晢錛屾垜浠兘涓嶈兘鐩蹭粠錛岃澶氭兂鍑犱釜涓轟粈涔堛傛湁浜嗗瑙傜殑鎰忚錛屼綘灝卞簲璇ョ洿鎴簡褰撳湴琛ㄨ揪銆傚鏋滃仛浠諱綍浜嬫儏閮藉儚鈥滄墦澶瀬鎷斥濓紝浼氳浜轟笉鐭ユ墍浜戯紝涔熶細閫犳垚寰堝璇細銆傛湁涓嬈★紝鍦ㄥ井杞爺絀墮櫌宸ヤ綔鐨勪竴浣嶇爺絀朵漢鍛樺氨鑷繁鎵閫夋嫨鐨勭爺絀舵柟鍚戞潵寰佹眰鎴戠殑鎰忚錛屾垜浣滀簡涓鐣垎鏋愶紝璁や負榪欎釜鏂瑰悜鏈変笉灝戦棶棰橈紝浣嗗鏋滀粬鍧氭寔錛屾垜鎰挎剰鏀寔浠栬瘯鐫鍘誨仛銆傜粨鏋滀粬璁や負鎴戣繖鍙ヨ瘽鐨勬剰鎬濆疄闄呬笂灝辨槸涓嶅厑璁鎬粬鍘誨仛錛屾墍浠ヤ粬灝遍夋嫨浜嗗叾浠栫殑鏂瑰悜銆傚悗鏉ヤ粬瑕佸嚭宸椂錛岃礋璐h鏀夸簨鍔$殑浜哄憡璇変粬錛屼綘鍙互閫夋嫨鍧愮伀杞︽垨鑰呭潗椋炴満銆備粬璁や負琛屾斂浜哄憳瀹為檯涓婃槸鍦ㄦ殫紺轟粬鍧愮伀杞︼紝鍥犱負鍧愰鏈哄お璐點傚叾瀹烇紝浠栫殑鐚滄祴閮芥槸閿欒鐨勩傚洜涓烘垜浠殑娌熼氭柟寮忔槸鐩存埅浜嗗綋錛岃屼粬鍗村湪鈥滄墦澶瀬鎷斥濄傝繖涔嬪悗錛屾垜浠氳繃涓緋誨垪鐨勫叕鍙告枃鍖栬搴э紝璁╁憳宸ヤ滑浜嗚В鍒幫紝蹇冮噷鎯充粈涔堝氨璁蹭粈涔堬紝涓嶈鎶婄畝鍗曠殑闂澶嶆潅鍖栥傜幇鍦紝鐮旂┒闄㈤噷榪欑被鐨勮浼氬皯浜嗗緢澶氥?銆
銆銆鎷愬集鎶硅錛岃█涓嶇敱琛鳳紝緇撴灉嫻垂浜嗗ぇ瀹剁殑瀹濊吹鏃墮棿銆傜灮鍓嶉【鍚庯紝鐢熸曡閿欒瘽錛岀粨鏋滄槸鍙樻垚璋ㄥ皬鎱庡井鐨勬嚘澶傛洿緋熺硶鐨勬槸榪樻湁浜涗漢錛屽綋闈笉璇達紝鑳屽悗涔辮錛岃繖鏍峰浠栦漢鍜岃嚜宸遍兘姣棤鐩婂錛屾渶鍚庡彧鑳芥槸鐮村潖浜嗛泦浣撶殑鍥㈢粨銆傝繖鏍風殑浜哄拰浣滈鏃笉鑳介潰瀵圭ぞ浼氾紝涔熶笉鍙兘鍦ㄧ瀛︾爺絀朵腑璧板嚭鏂拌礬錛屾洿涓嶅彲鑳藉湪嬋鐑堢殑鍟嗘垬涓劚棰栬屽嚭銆?銆銆
銆銆甯屾湜鍚屽浠兘澶熷仛鍒板紑璇氬竷鍏紝鏁簬璇粹滀笉鈥濓紝榪欐墠鏄皧閲嶈嚜宸辨濇兂鎰忔効鐨勮〃鐜般傚綋鐒訛紝鍦ㄨ〃杈句綘鐨勬剰瑙佹椂錛屾棤璁哄弽瀵瑰拰鎵硅瘎閮藉簲鏄緩璁炬х殑錛屾湁楂樺害璇氭剰鐨勶紝鑰屼笉鏄負鎵硅瘎鑰屾壒璇勶紝涓鴻京璁鴻屾壒璇勩傛垜璧炴垚鐨勬柟寮忔槸鎻愪緵寤鴻鎬х殑姝i潰鐨勬剰瑙併傚湪寮濮嬭璁洪棶棰樻椂錛屼換浣曚漢鍏堜笉瑕佹嫆浜哄崈閲屼箣澶栵紝澶у鎶婃兂娉曢兘鎽嗗湪妗岄潰涓婏紝鍏呭垎浣撶幇涓漢鐨勮鐐癸紝榪欐牱鎵嶄細鏈変竴涓綰沖ぇ閮ㄥ垎浜烘剰瑙佺殑緇撹銆傚綋鐒訛紝浣犱篃瑕佸涔犵敤閫傚綋鐨勬柟娉曞拰鍙f皵琛ㄨ揪浣犵殑鎰忚錛屾瘮濡傝涓嶈鍦ㄥ緢澶氫漢闈㈠墠璁╁埆浜洪毦鍫傝繖鏍鳳紝浣犵殑鎵硅瘎鎵嶄細濂忔晥銆?銆銆
鐝嶆儨鏍″洯瀛︿範鐢熸椿 銆銆
銆銆鍑犲ぉ鍓嶏紝鎶ョ焊涓婄櫥鍑轟竴鏉℃秷鎭紝璇存湁涓鐢熻緧瀛﹀幓寮緗戠粶鍏徃銆傛垜璁や負榪欏茍涓嶅煎緱鎻愬°傚緇濆ぇ澶氭暟瀛︾敓鏉ヨ錛屽湪鏍$敓媧繪槸緋葷粺鍦板涔犲熀紜鐞嗚鐭ヨ瘑錛屽涔犳濊冨拰瑙e喅闂鏂瑰紡鐨勫ソ鏈轟細銆傝繖浜涚煡璇嗗皢鎴愪負浣犳湭鏉ュ彂灞曡繃紼嬩腑鎵闇瑕佺殑鏈鍩烘湰鐨勭煡璇嗗拰鎶鑳姐傚氨鍍忓緩涓鏍嬮珮妤鹼紝濡傛灉涓嶆墦濂藉熀紜錛屾槸緇忎笉璧烽鍚歸洦鎵撶殑銆?銆銆
銆銆鍦ㄥ叏鐞冭寖鍥村唴錛岀編鍥界殑鐮旂┒姘村鉤鏃犵枒鏄笘鐣屼竴嫻佺殑銆傝岄櫎浜嗙編鍥戒箣澶栵紝浣犱細鍙戠幇鑻卞浗鐨勭爺絀舵按騫充篃鏄浉褰撶獊鍑虹殑銆傜┒鍏跺師鍥狅紝鍏跺疄灝辨槸璇█闂銆傝嫳鍥戒漢鍙互姣棤闃葷鍦伴槄璇葷編鍥戒箖鑷沖叏鐞冨悇縐嶆渶鏂扮殑鑻辨枃鐮旂┒鎶ュ憡鍜岃祫鏂欍傝繖瀵逛簬浠栦滑鎶婃彙鐮旂┒鏂瑰悜錛岃窡韙渶鏂拌繘灞曪紝鍙戣〃鐮旂┒鎴愭灉閮芥湁寰堝ぇ鐨勫府鍔┿傚洜姝わ紝鑻辮瀛︿範瀵逛簬鎴戜滑浣滅爺絀剁殑浜烘潵璇達紝鏄浉褰撻噸瑕佺殑銆傚彧鏈夊姞寮鴻繖鏂歸潰绱犺川鐨勫煿鍏伙紝鎵嶈兘閫傚簲灝嗘潵鐨勫彂灞曘傛垜寤鴻錛屽鑻辮鍏堝惉璇達紝鍐嶅璇誨啓錛岃屼笖鍔″繀鍦ㄥぇ瀛﹂樁孌靛畬鍏ㄨВ鍐寵嫳璇涔犵殑闂銆傜瓑鍒板勾榫勫ぇ浜嗭紝瑕佷粯鍑虹殑浠d環鐩告瘮灝變細澶у緱澶氥?銆銆
銆銆闄や簡鑻辮涔嬪錛屾暟瀛︺佺粺璁″瀵圭悊宸ョ瀛︾敓涔熸槸寰堥噸瑕佺殑鍩虹璇劇▼錛屾槸涓嶅彲蹇借鐨勩傛暟瀛︽槸浜虹被鍑犲崈騫寸殑鏅烘収緇撴櫠錛屼綘浠竴瀹氳鐢ㄥ績鎶婂畠瀛﹀ソ錛屼笉鑳芥暦琛嶄簡浜嬨傛垜浠婂ぉ灝卞緢鍚庢倲鑷繁褰撳垵娌℃湁鑺辨洿澶氬姛澶妸鏁板 瀛﹀緱 鏇村ソ浜涖傚彟澶栵紝璁$畻鏈哄簲鐢ㄣ佺畻娉曞拰緙栫▼涔熼兘鏄瘡涓涓伐縐戝鐢熷簲璇?鐔熸倝 鍜屾帉鎻$殑錛屽畠浠槸灝嗘潵浜轟漢蹇呴』浼氱敤鐨勫伐鍏楓?銆銆
銆銆縐戞妧鐨勫彂灞曞彲璋撴棩鏂版湀寮傘傚湪鏍″涔犵殑鐩殑錛屽叾瀹炲氨鏄帉鎻℃渶鍩烘湰鐨勫涔犲伐鍏峰拰鏂規硶銆傚皢鏉ュ埄鐢ㄨ繖浜涘伐鍏峰拰鏂規硶錛屽啀鍘誨涔犳柊鐨勪笢瑗褲傛瘮濡傦細涓婅瀛︿細浜咰錛嬶紜錛岃兘鍚﹁嚜宸卞浼欽ava錛熶笂璇懼浼氫簡HTML錛岃兘鍚﹁嚜宸卞浼?XML錛熶笌鍏惰涓婂ぇ瀛︽槸涓轟簡瀛︿竴闂ㄤ笓涓氾紝涓嶅璇存槸涓轟簡瀛︿細濡備綍瀛︿範 錛岃鑷繁鑳藉鈥滄棤甯堣嚜閫氣濄?銆銆
銆銆澶у姣曚笟鍚庣殑鍓嶄袱騫達紝鍚屽浠仛鍒頒竴璧鳳紝鍙戠幇鍙樺寲閮借繕涓嶇畻澶с備簲騫村悗鍐嶈仛鍒頒竴璧鳳紝鍙樺寲灝卞ぇ澶氫簡銆備竴浜涗漢钀戒紞浜嗭紝鍥犱負浠栦滑涓嶅啀瀛︿範錛屼笉鍐嶈兘澶熸帉鎻℃柊鐨勪笢瑗匡紝鑷劧鑰岀劧鍦拌惤鍦ㄤ簡紺句細鍙戝睍鐨勫悗闈€傚鏋滄垜浠鍦ㄨ繖涓珵浜夋縺鐑堢殑紺句細涓案涓嶈惤浼嶏紝閭e氨寰楁案榪滃涔犮?銆銆
銆銆鎴戠殑鑰佹澘RickRashid鍗氬+鏄洰鍓嶅井杞叕鍙鎬富綆$爺絀剁殑楂樼駭鍓昏錛屼粬宸茬粡鍔熸垚鍚嶅氨錛屽嵈濮嬬粓淇濇寔鐫涓棰楀涔犲拰榪涘彇鐨勫績銆傜幇鍦紝浠栨瘡騫翠粛鐒剁紪鍐欏ぇ綰?0錛?00琛岀▼搴忋備粬璁や負錛氱敤鏈鏂扮殑鎶鏈紪紼嬪彲浠ヤ嬌浠栦繚鎸佸璁$畻鏈烘渶鍓嶆部鎶鏈殑鏁忔劅錛屼嬌鑷繁鑳藉涓嶆柇榪涙銆備粖澶╋紝鏈変簺鍗氬+鐢熷甫鐫浣庡勾綰х殑鏈鐢熷拰紜曞+鐢熷仛欏圭洰錛屽氨鑷弧鍦拌涓鴻嚜宸卞凡緇忔病鏈夊繀瑕佸啀緙栫▼浜嗐傚叾瀹烇紝榪欐牱鐨勫仛娉曟槸寰堜笉鏄庢櫤鐨勩?銆銆
銆銆姣忔鍒版竻鍗庡拰鍏朵粬瀛︽牎璁塊棶錛岃闂埌鏈澶氱殑灝辨槸瀛︾敓鎵撳伐鐨勯棶棰樸傛垜璁や負錛屾墦宸ヤ粠鎬諱綋鏉ヨ瀵瑰鐢熸槸涓浠跺ソ浜嬶紝鏄嫇瀹借閲庣殑涓縐嶆柟寮忋備緥濡傦紝鍦ㄧ爺絀舵満鏋勬墦宸ワ紝鍙互瀛﹀埌鏈鏂扮殑縐戞妧錛涘湪浜у搧閮ㄩ棬鎵撳伐錛屽彲浠ュ鍒板紑鍙戠殑鎶鏈拰鎶鑳斤紱鍦ㄥ競鍦洪儴闂ㄦ墦宸ワ紝鍙互鐞嗚В鍟嗕笟鐨勮繍浣溿傛垜璁や負姣忎竴涓鐢熼兘搴旇鏈夋墦宸ョ殑緇忛獙錛屼絾涓嶈鎵撲竴浜涒滄病鐢ㄧ殑宸モ濄傞鍏堣鏄庣櫧鎵撳伐鍙槸瀛︾敓鐢熸椿涓殑涓縐嶈ˉ鍏咃紝瀛︿範鎵嶆槸鏈閲嶈鐨勩傛墦宸ョ殑鐩殑鏄紑闃旂溂鐣岋紝涓嶆槸鎻愬墠涓婄彮銆傚鏋滀綘鎶婄炕璇戜功鏈佸綍鍏ユ暟鎹簱鎵鑺辯殑鏃墮棿鎶曞叆瀛︿範錛屽皢鏉ュ彲浠ヨ禋鏇村鐨勯挶銆傞偅浜涢挶灝嗚繙榪滆秴鍑虹洰鍓嶆墦宸ョ殑鏀跺叆銆?銆銆聽聽
銆銆姝ゅ錛岃繕鏈変竴浜涘鐢熷彈鍒扮洰鍓嶉瀛﹀垱涓氶娼殑榧撳姳錛屼負鎴愪負涓浗鐨勬瘮灝?amp;#8226;鐩栬尐鍜岃繄鍏嬪皵•鎴村皵鑰屼腑閫旇緧瀛︺備互鎴戠殑瑙傜偣錛岄櫎浜嗗崄鍒嗙壒孌婄殑鎯呭喌澶栵紝鎴戜笉寤鴻鍦ㄦ牎瀛︾敓閫瀛﹀垱涓氥備綘鎵鐪嬪埌鐨勯偅浜涢瀛﹀垱涓氱殑鎴愬姛鑰呭疄闄呬笂灝戜箣鍙堝皯銆傜洰鍓嶏紝澶ч儴鍒嗗鐢熻櫧鏈夊垱涓氱殑鎯蟲硶錛屼絾緙哄皯鍒涗笟鐨勭粡楠岋紝鎵浠ュけ璐ョ殑鍙兘鎬ч潪甯稿ぇ銆傚鏋滆鎴愬姛錛屾垜寤鴻浣犱滑鍏堟妸涔﹁濂姐傚鏋滄槸瑕佸涔犲垱涓氱殑緇忛獙錛屼綘瀹屽叏鍙互鍒╃敤鍋囨湡鐨勬椂闂村厛鍘諱竴瀹跺叕鍙歌竟鎵撳伐杈瑰銆?
銆銆姣斿皵•鐩栬尐涔熸浘璇磋繃錛氣滃鏋滀綘姝e湪鑰冭檻鑷繁鎴愮珛涓瀹舵柊鍏徃錛屼綘搴旇棣栧厛鏄庣‘鍦扮煡閬擄細鍒涘姙鍏徃闇瑕佸法澶х殑綺懼姏鎶曞叆錛岃鍐掑法澶х殑椋庨櫓銆傛垜瑙夊緱浣犱滑涓嶅繀鍍忔垜錛屼竴寮濮嬪氨鍒涘姙涓瀹跺叕鍙搞備綘搴旇鑰冭檻鍔犵洘鍏朵粬鍏徃騫跺湪榪欏鍏徃涓涔犱粬浠殑宸ヤ綔銆佸垱涓氭柟娉曘傗?銆銆
浣犳兂鎴翠竴欏朵粈涔堟牱鐨勫崥澹附 銆銆
銆銆鍦ㄦ垜榪涘叆鍗″唴鍩烘闅嗗ぇ瀛︽敾璇昏綆楁満鍗氬+瀛︿綅鏃訛紝緋諱富浠繪浘瀵規垜璁詫紝褰撲綘鎷垮埌浣犵殑鍗氬+瀛︿綅鏃訛紝浣犲簲璇ユ垚涓轟綘鎵浠庝簨鐨勭爺絀墮鍩熼噷涓栫晫絎竴鐨勪笓瀹躲傝繖鍙ヨ瘽瀵逛簬鍒濆嚭鑼呭簮鐨勬垜鏉ヨ綆鐩撮珮涓嶅彲鏀錛屼絾涔熻鎴戣笇韜囨弧蹇椼佽穬璺冩璇曘傚氨榪欐牱錛屽湪緇忚繃浜斿勾瀵掔獥銆佸浠ョ戶鏃ョ殑鍔姏宸ヤ綔鍚庯紝浠栨墍鏈熷緟鐨勭粨鏋滃氨閭d箞鑷劧鑰岀劧鍦板嚭鐜頒簡銆?
銆銆涓涓墦綆楁敾璇誨崥澹浣嶇殑浜猴紝灝卞簲璇ョ粰鑷繁鏍戠珛涓涓緢楂樼殑鐩爣銆傚鏋滄病鏈夐泟蹇冨.蹇楋紝灝卞崈涓囦笉瑕佽嚜嬈烘浜猴紝涔熻緇忓晢鎴栦粠浜嬪叾瀹冨伐浣滐紝浼氭湁鏇村ぇ鐨勬垚緇┿傚湪鐩爣紜珛涔嬪悗錛屾垜寤鴻浣犱負鑷繁璁捐涓涓笁騫寸殑瀛︿範鍜岀鐮旇鍒掋傞鍏堬紝浣犻渶瑕佸交搴曞湴浜嗚В鍦ㄧ浉鍏抽鍩熶粬浜哄凡鏈夌殑宸ヤ綔鍜屾垚緇┿傜劧鍚庡啀鎻愬嚭鑷繁鐨勬兂娉曞拰瑙佽В錛屽仛鑴氳笍瀹炲湴鐨勫伐浣溿傚彟澶栵紝榪樿涓嶆柇璺熻釜榪欎釜棰嗗煙鐨勬渶鏂扮爺絀惰繘灞曘傚彧鏈夎繖鏍鳳紝鎵嶅彲浠ユ妸鎻″ソ鏂瑰悜錛岄伩鍏嶉噸澶嶆у伐浣滐紝鎶婄簿鍔涢泦涓湪鏈鏈変環鍊肩殑鐮旂┒鏂瑰悜涓?銆?銆銆
銆銆鍦ㄥ鏈晫錛屼漢浠櫘閬嶈涓衡滃悕甯堝嚭楂樺緬鈥濄傚彲瑙佸甯堝湪浣犵殑鎴愰暱閬撹礬涓綔鐢ㄦ槸澶氫箞澶с傛墍浠ワ紝浣犲簲璇ヤ富鍔ㄥ幓瀵繪壘鑷繁鎵鐮旂┒鐨勯鍩熼噷鏈濂界殑鑰佸笀銆傞櫎浜嗕綘鐨勮佸笀涔嬪錛屼綘榪樺簲璇ュ幓姹傛暀浜庡懆鍥存墍鏈夌殑涓撳銆傛洿涓嶈蹇樹簡甯稿幓姹傛暀鈥滄渶鍗氬鐨勮佸笀鈥滻nternet錛佺幇鍦紝鍑犱箮鎵鏈夌殑璁烘枃銆佺爺絀剁粨鏋溿佸厛榪涙兂娉曢兘鍙互鍦ㄧ綉涓婃壘鍒般傛垜榪橀紦鍔變綘鐩存帴鍙戠數瀛愰偖浠跺幓鍜ㄨ涓浜涗笘鐣屽叕璁ょ殑涓撳鍜屾暀鎺堛備互鎴戠殑緇忛獙錛屽浜庤繖鏍風殑閭歡錛屼粬浠腑鐨勫ぇ閮ㄥ垎閮戒細寰堝揩緇欎綘鍥炲銆?銆銆
銆銆鎴戝湪鏀昏鍗氬+瀛︿綅鏃訛紝姣忓懆宸ヤ綔涓冨ぉ錛屾瘡澶╁伐浣?6涓皬鏃訛紝澶ч噺鐨勭粺璁$粨鏋滃拰鍒嗘瀽鎶ュ憡鍑犱箮璁╂垜宕╂簝銆傞偅鏃訛紝鍚岄鍩熷叾浠栫爺絀朵漢鍛橀噰鐢ㄧ殑鏄笌鎴戜笉鍚岀殑浼犵粺鏂規硶銆傛垜鐨勮佸笀铏界劧鏀寔鎴戯紝浣嗗茍涓嶈鍙垜鐨勭爺絀舵柟鍚?銆傛垜涔熸浘涓嶆涓嬈″湴鎬鐤戣嚜宸辯殑鎵浣滄墍涓烘槸鍚︾湡鐨勮兘澶熸垚鍔熴備絾緇堜簬鏈変竴 澶╋紝 鍦ㄥ崐澶滀笁鐐規椂鍋氬嚭鐨勪竴涓粨鏋滆鎴戞劅鍙楀埌浜嗘垚鍔熺殑婊嬪懗銆傚悗鏉ワ紝鐮旂┒鏈変簡紿侀鐚涜繘鐨勮繘灞曪紝瀵煎笀涔熷紑濮嬮噰鐢ㄦ垜鐨勭爺絀舵柟娉曘傛垜鐨勫崥澹鏂囦嬌鎴戠殑鐮旂┒鎴愪負鑷劧璇█鐮旂┒鏂歸潰褰撴椂鏈鏈夊獎鍝嶅姏鐨勫伐浣滀箣涓銆?
銆銆璇誨崥澹笉鏄竴浠惰交鏉劇殑浜嬶紝鍒囧繉嫻簛鐨勬儏緇紝鑰岃涓姝ヤ竴涓剼鍗幫紝鎵庢墡瀹炲疄鍦板伐浣溿備篃涓嶅彲 鍙椾竴浜涚◢綰靛嵆閫濈殑鍚嶅埄鐨勮鎯戯紝鑰岃200%鐨勬姇鍏ャ備篃璁鎬綘浼氱柌鍔籌紝浼氭噴鎮旓紝浼氳糠澶辨柟鍚戯紝浣嗘槸瑕佽浣忥紝浣犳墍鏈熷緟鐨勬垚鍔熷拰紿佺牬涔熸瀛曡偛鍏朵腑銆傞偅縐嶄竴鍒囬兘寰堥『鍒╋紝璋侀兘鍙互寰楀埌鐨勫伐浣滃拰緇撴灉錛屾垜鐩鎬俊鐮旂┒浠峰間竴瀹氫笉楂樸備粠涓瀹氭剰涔変笂璁詫紝涓涓漢濡傛灉鎵撶畻涓杈堝瓙浠庝簨鐮旂┒宸ヤ綔錛岄偅涔堜粠浠栧湪璇誨崥澹浣嶆湡闂存墍褰㈡垚鐨勫仛浜嬩範鎯佺爺絀舵柟娉曞拰鎬濈淮鏂瑰紡鍩烘湰涓婂氨鍙互鍒ゆ柇鍑轟粬鏈潵宸ヤ綔鐨勮疆寤撱傛墍浠ワ紝浣犱竴瀹氳鍋氫竴涓滄湁蹇冧漢鈥濓紝鍏呭垎鍒?鐢ㄥ湪 鏍$殑鏃墮棿錛屼負鑷繁鐨勫皢鏉ユ墦濂藉熀紜銆?銆銆
銆銆涓婅堪涓浜涜鐐癸紝鏄垜鍦ㄤ笌鍚屽浠氦寰榪囩▼涓殑涓浜涙劅鍙椼傛垜甯屾湜榪欎簺寤鴻鍜屾兂娉曡兘瀵規鍦ㄦ湭鏉ヤ箣璺笂璺嬫秹鐨勪綘浠湁鎵鍚彂錛岃兘瀵逛綘浠洰鍓嶇殑瀛︿範鏈夋墍甯姪銆傛垨璁稿洜涓鴻鐐逛笉鍚屻佷漢鍚勬湁蹇楋紝鎴栬鍥犱負蹇犺█閫嗚籌紝榪欏皝淇″彲鑳芥棤娉曚負姣忎竴浣嶅悓瀛︽墍鎺ュ彈銆備絾鏄彧瑕佷竴鐧句綅闃呰榪欏皝淇$殑鍚屽涓湁涓浣嶄粠涓彈鐩婏紝榪欏皝淇″氨宸茬粡姣旀垜鎵浣滅殑浠諱綍鐮旂┒閮芥洿鏈変環鍊箋傛垜鐪熻瘹鍦板笇鏈涳紝鍦ㄦ柊鐨勪笘綰紝涓浗瀛︾敓鏃犺鏄湪鍥藉唴錛岃繕鏄浗澶栵紱鏃犺鏄仛鐮旂┒錛岃繕鏄粡鍟嗭紝閮芥樉寰楁洿鎴愮啛涓浜涳紝鎴愬姛鐨勬満鐜囨洿澶т竴浜涖?br />
]]>
聽聽聽聽鐪熸兂濂藉ソ鐨勪紤鎭竴涓嬶紝鏀炬澗鑷繁鐨勭緇忥紒 浣嗘槸涓嶈兘錛佹庝箞鍔烇紵 宸ヤ綔涓ゅ勾浜嗭紝鐪熺殑鏄劅瑙夊埌浜嗚繖縐嶈緵鑻︺傞偅鎬庝箞鎵嶈兘澶熸敼鍙樿繖縐嶇幇璞″憿錛熸柟娉曪紝鏀瑰彉鎴戜滑瀛︿範鐨勬柟娉曪紝榪欐槸鎴戞渶榪戜竴鐩村湪鎬濊冪殑浜嬫儏銆傛柊鎶鏈浘鍑轟笉絀鳳紝鎴戜滑涓嶅彲鑳芥案榪滆窡寰椾笂鑴氭錛屾墍浠ユ垜浠鎺屾彙鑷繁鐨勪富鍔ㄦ潈銆?
聽聽 絎竴錛岃鏈夊ソ鐨勫績鎬侊紝鎴戜滑閫夋嫨浜嗚繖涓琛岋紝娌℃湁浠涔堝彲浠ユ姳鎬ㄧ殑銆?br />
聽聽 絎簩錛岀粡甯稿弽鐪佽嚜宸憋紝鐪嬭兘涓嶈兘鍙樺緱鏇村ソ銆?姣忓ぉ閮戒細鏈夋敹鑾鳳紝鎵浠ュ憿錛屾瘡澶╅兘鍙互鍙戠幇鑷繁鐨勪笉瓚熾侻atrin Folwer璇達紝濡傛灉錛屼袱騫村悗錛屼綘榪樻槸璁や負涓ゅ勾鍓嶇殑鑷繁宸茬粡寰堜紭縐鐨勮瘽錛岄偅璇存槑浣犳病鏈夎繘姝ャ?
聽聽 絎笁錛岃鎬葷粨錛屾妸鑷繁鏄庡ぉ鐨勫績寰楅兘璁頒笅鏉ワ紝璁板綍鑷繁鐨勮剼姝ャ?
聽聽 絎洓錛岃閽葷爺錛岃鍋氬氨鎶婂畠鍋氬ソ銆傜鍒板洶闅炬洿鏄榪庨毦鑰屼笂錛岃繖鏃跺欐墠鏄涔犵殑鏈濂芥満浼氥?br />
聽聽 絎簲錛屼笉瑕佹湁鐣忔儳蹇冪悊錛屼笉瑕佹曞仛涓嶅ソ銆傜浉淇¤嚜宸便?br />
聽聽 絎叚錛岃瀛︿細浣跨敤鏂囨。錛屼亢鐨勫ご榪欎竴鐐規渶璁╀漢浣╂湇錛屼笉浼氱殑闂錛岀湅鏂囨。錛屽緢蹇氨鍙互鎼炲畾錛屽綋鐒訛紝鍓嶆彁鏄粬鑻辮瀹炲湪鏄珮銆傛病鏈夎璦闅滅銆?
聽聽聽聽絎竷錛屽氨鏄笂闈㈣鐨勶紝浣滀負紼嬪簭鍛橈紝瑕佸濂借嫳璇傝繖鏄緢閲嶈銆?
聽聽聽聽榪樻湁灝辨槸錛岀▼搴忓憳姣忓ぉ璇ュ仛鐨勪簨錛屽ソ涓滆タ銆?br />
鍐欑殑鐪熺殑寰堝ソ錛屼笉榪囨垜鍙戠幇浜哄潥鎸佸共涓浠朵簨鎯呯湡鐨勫緢闅俱?/font>
]]>
Web Page Script Languages
鐢ㄦ潵鍋氱綉欏電殑璇█錛屽彲浠ュ緗戦〉鍋氭帶鍒躲傚鏋滀綘甯屾湜璁捐鍑哄緢鐐殑緗戦〉錛屽厜闈?HTML 鏄笉澶熺殑錛屼綘榪樺緱瀛︿竴濂?Web Page Script Language錛屾瘮鏂硅 javascript錛圗CMAScript錛夊拰寰蔣鐨?JScript銆備笉榪囦袱鑰呴兘鏄郴鍑哄悓闂紝鎵浠ュ樊涓嶅銆俉ML Script錛圵AP 鎵嬫満鐨?script錛変篃鏄鑷?
javascript銆?br />璁稿浜虹煡閬撴垜涓嶄細 javascript 涔嬪悗錛岄兘浼氬ぇ鍚冧竴鎯婂湴鍙嶉棶錛氥屽彲鏄綘涓嶆槸浼?Java錛屾庝箞涓嶉『渚垮 javascript錛屼袱涓璦涓嶆槸宸笉澶氥嶃傚鏋滀緷鐓ф鎺ㄧ悊錛屾垜鐪嬫垜宸笉澶氭瘡涓璦閮借瀛︿簡錛屽洜涓洪櫎浜?REBOL 鍜屾眹緙栬璦姣旇緝鐗規畩涔嬪錛屾垜瑙夊緱鍏跺畠璇█鐨勮娉曢兘宸笉澶氾紙浣嗙敤閫斿樊寰堝錛夈?br />涓嶈繃鎴戞渶榪戠殑紜槸鏈夋墦綆楀紑濮嬪 javascript錛屽洜涓烘垜鍙戠幇鐢ㄥ埌瀹冪殑鏈轟細榪樹笉灝戙傞櫎浜嗙綉欏典細鐢ㄥ埌涔嬪錛屾垜鏈榪戞墍鎺ヨЕ鐨?SVG錛圫calable Vector Graphics錛夊氨浣跨敤 javascript 鏉ヨ揪鍒板姩鐢繪晥鏋溿?br />
Interpreted Languages錛堢洿璇戝紡璇█錛?br />榪欑被鐩磋瘧寮忕殑璇█鍖呮嫭浜?Perl銆丳ython銆丷EBOL銆丷uby... 絳夛紝涔熷父琚О涓?script 璇█錛岄氬父鏄敤鏉ュ彇浠f壒嬈℃。鍜?shell script 浠ヤ究鍜屽簳涓嬬殑鎿嶄綔緋葷粺娌熼氥傚熀鏈笂錛屾瘡涓漢鑷沖皯閮藉簲璇ヨ浼氫竴濂楄繖綾葷殑璇█錛屽綋浣犻渶瑕佸仛鏌愪歡綆鍗曠殑宸ヤ綔錛屼綘鍙互閫忚繃鐩磋瘧寮忕殑璇█鏉ヨ交鏄撳湴鍔炲埌錛岃繖涔堜竴鏉ワ紝浣犲氨鍙互涓嶅繀澶у紶鏃楅紦鍦頒嬌鐢?Java 鍜?C++ 絳夊伐鍏蜂簡銆?br />鐩磋瘧寮忕殑璇█閫氬父姣旇緝楂橀樁錛岀▼搴忔瘮杈冨ソ鍐欙紝寰寰綆鐭湴鍑犺紼嬪簭灝辨姷寰楄繃 Java 鎴?C++ 鐨勪竴鍫嗙▼搴忎唬鐮併傚洜涓轟笉鐢ㄧ紪璇戣屼笖楂橀樁錛屾墍浠ヨ繖綾昏璦鐨勭▼搴忔晥鐜囬氬父寰堝樊錛屽張鍥犱負鍘熷紼嬪簭浠g爜鏆撮湶鍦ㄥ錛屾墍浠ユ嬁瀹冩潵鍐欏啓宸ュ叿紼嬪簭鑷繁鐢ㄥ彲浠ワ紝浣嗘槸鎷挎潵寮鍙戣蔣浠朵駭鍝佹瘮杈冧笉鎭板綋錛堥櫎闈炰綘涓嶅湪涔庡師濮嬬爜澶栨祦錛夈傜洰鍓嶈繖綾昏璦鏈甯歌鐢ㄦ潵寮鍙戠綉欏墊湇鍔″櫒绔殑紼嬪簭錛屾垨鑰呮槸璁捐杞歡鐨?prototype銆?br />Python 鏈変竴浜涗笉閿欑殑璇█鐗規э紝鐩墠鍦ㄥ浗澶栫畻鏄弧鐑棬鐨勶紱Ruby 鏄棩鏈竴浣嶆暀鎺堣璁$殑錛屼絾鏄繖璇█澶柊浜嗭紝鐩墠濂借薄鍙湁 Addison Wesley 鐨勪竴鏈嫳鏂囦功鍜?O'Reilly 鐨勪竴鏈棩鏂囦功鍙緵鍙傝冿紱REBOL 鍒欐槸鎴戣繎鏈熸渶鍠滄鐨勭▼搴忚璦錛岄潪甯哥壒鍒紝REBOL 璇█鐨勬濈淮鍜屽埆鐨勮璦宸紓闈炲父澶э紝璁稿鏃跺欏緢鎺ヨ繎鑻辨枃鍙ュ瓙銆傝嚦浜?Perl錛屾垜灝辨病鏈夌爺絀朵簡錛屽彴婀炬鑾辯ぜ鍏徃宸茬粡鏈?Perl 鐨勪笓瀹朵簡錛屽鏋滄垜鐜板湪鍘誨 Perl 鐨勮瘽錛岀煭鏈熷唴鏄笉鍙兘瓚呰秺浠栫殑錛屾墍浠ユ垜鐪嬬畻浜?:(
Hybrid Languages錛堟販鍚堝紡璇█錛?br />Java錛孋# 閮芥槸娣峰悎寮忚璦錛屼粙浜庣洿璇戝紡璇█鍜岀紪璇戝紡璇█涔嬮棿錛堜笉綆℃槸鍦ㄦ墽琛屾晥鑳戒笂鎴栫▼搴忕畝鍗曟т笂錛夈?br />C# 鐨勮璦鏈夎澶氬鎬殑鐗硅壊錛屼絾涔熸湁涓浜涗笉閿欑殑鐗硅壊銆侰# 鐨勫涔犱嬌鐢ㄤ笂鐨勯毦搴︿粙浜?Java 鍜?C/C++ 涔嬮棿銆侰# 鏄?Microsoft .NET 騫沖彴涓婃渶閲嶈鐨勮璦錛屽煎緱鎴戜滑鎸佺畫瑙傚療鍏跺悗緇彂灞曘傝嚦浜?Java 鎴戝氨涓嶇敤澶氳浜嗭紝鐩鎬俊 Sleepless in Java 鐨勮鑰呬滑搴旇閮界煡閬?Java 鏄庝箞涓鍥炰簨銆?br />鑷充簬 Visual Basic錛屽湪 .NET 騫沖彴涓繪帹 C# 璇█錛岃?VisualBasic .NET 鐨勮璦鍙堟瘮浠ュ墠澶嶆潅璁稿鐨勬儏鍐典笅錛?Visual Basic 鐨勫墠閫斾技涔庡緢涓嶇湅濂姐?br />
Compiling Languages錛堢紪璇戝紡璇█錛?br />C/C++錛孌elphi錛圤bject Pascal錛夐兘鏄紪璇戝紡璇█銆傝繖鍑犲勾鏉ワ紝C++ 宸茬粡鍙樺緱瓚婃潵瓚婂簽澶т簡錛屽ぇ澶氭暟鐨?C++ 紼嬪簭鍛樺彧鐢ㄥ埌錛堜篃鍙噦錛塁++ 鍔熻兘鐨勪竴灝忛儴浠姐傛兂鎴愪負 C++ 璇█鐪熸鐨勯珮鎵嬶紝娌℃湁鑰椾笂涓変簲騫存槸涓嶅彲鑳界殑銆傝櫧鐒?C++ 寰堝鏉傦紝浣嗘槸鐪熸鎯蟲垚涓虹▼搴忛珮鎵嬬殑浜哄簲璇ラ兘瑕佹噦 C/C++錛岄噸瑕佺殑 API 閮戒細鏈?C/C++ 鐨勭増鏈紝鐢辨鍙 C/C++ 鐨勯噸瑕佹с傝嚦浜?Delphi錛屽湪 Microsoft .NET 鎺ㄥ嚭涔嬪悗浼氬 Delphi 閫犳垚涓浜涙墦鍑伙紙Microsoft .NET 鐨勮璦鍚嶅崟涓繛 Scheme銆丒iffel 鍜?Mercury 榪欑灝戠敤鐨勮璦閮藉嚭鐜頒簡錛岀嫭緙?Delphi錛夛紝浣嗘槸 Delphi 鑳介忚繃 Kylix 鏉ヨ法瓚?Windows 鍜?Linux錛屽張鏄竴涓緢澶х殑鍚稿紩鍔涳紝濡傛灉浣犳兂瑕佽法 Linux 鍜?Windows 騫沖彴鐨?RAD 宸ュ叿錛堣璦錛夛紝鐩墠 Delphi 浼間箮鏄渶濂界殑閫夋嫨銆?br />
Assembly Languages錛堟眹緙栬璦錛?br />浣跨敤姹囩紪璇█錛屼綘灝嗗皾璇曞埌涓鐮栦竴鐡﹀爢鐮屽嚭紼嬪簭鐨勪箰瓚o紙鎴栫棝鑻︼級銆傛眹緙栬璦鍙互璇存槸鏈鎺ヨ繎紜歡鐨勮璦錛屽浼氭眹緙栬璦錛屽氨鍙互瀵硅綆楁満鐨勮繍浣滄湁鐩稿綋紼嬪害鐨勪簡瑙c備笉榪囷紝鐩墠榪炲紑鍙戦┍鍔ㄧ▼搴忛兘涓嶅お闇瑕佺敤鍒版眹緙栬璦浜嗐傛亹鎬曞彧鏈夊仛 DSP 鍜?OS 絳夋瀬灝戦儴浠界殑浜洪渶瑕佺敤鍒版眹緙栬璦銆傛垜涔熷ソ涔呮病鍐欐眹緙栫▼搴忎簡錛屼互鍓?DOS 鏃朵唬錛屾垜榪樼敤姹囩紪璇█鍐欒繃涓涓?PE 2銆?br />
紼嬪簭璇█瀛︿範欏哄簭鐨勫緩璁?br />閫氬父 Web Script 鏈綆鍗曪紝鐩磋瘧寮忚璦鍏舵錛屾帴鐫鏄販鍚堝紡璇█錛屽拰緙栬瘧寮忚璦錛屾渶楹葷儲鐨勬槸姹囩紪璇█銆傚鏋滀綘瀹屽叏娌℃湁紼嬪簭緇忛獙錛屾兂寮濮嬪紼嬪簭璁捐鐨勮瘽錛屼綘鍙互浠?javascript 鐫鎵嬶紝絳夊埌紼嬪簭鍩虹瑙傚康寤虹珛寰楀樊涓嶅浜嗭紝鍐嶅線涓嬪涔犵洿璇戝紡璇█錛岀劧鍚庡啀瀛︿範娣峰悎寮忚璦 ...錛屼互姝ょ被鎺ㄣ?br />甯屾湜榪欑瘒鏂囩珷鑳借В鍐寵鑰呬滑閫夋嫨紼嬪簭璇█鐨勫洶鎵?br />
鐪嬪畬榪欑瘒鏂囩珷錛屾垜瑙夊緱鑷繁鐨勫涔犵粡鍘嗙湡鐨勫緢鎼炵瑧錛屼笂澶у鏈鍏堝鐨勬槸C++,鎺ョ潃瀛︿簡涓騫寸殑C#錛屽悗鏉ユ帴瑙︿簡Javascript,鐜板湪鍙堝湪瀛ava銆傚紕浜嗗崐澶╂垜鏄秺瀛﹁秺綆鍗曚簡錛屽搱鍝垀~~~~~~
]]>
棣栧厛瑕佺悊瑙g嚎紼嬮鍏堥渶瑕佷簡瑙d竴浜涘熀鏈殑涓滆タ錛屾垜浠幇鍦ㄦ墍浣跨敤鐨勫ぇ澶氭暟鎿嶄綔緋葷粺閮藉睘浜庡浠誨姟錛屽垎鏃舵搷浣滅郴緇熴傛鏄敱浜庤繖縐嶆搷浣滅郴緇熺殑鍑虹幇鎵嶆湁浜嗗綰跨▼榪欎釜姒傚康銆傛垜浠嬌鐢ㄧ殑windows,linux灝卞睘浜庢鍒椼備粈涔堟槸鍒嗘椂鎿嶄綔緋葷粺鍛紝閫氫織涓鐐逛笌灝辨槸鍙互鍚屼竴鏃墮棿鎵ц澶氫釜紼嬪簭鐨勬搷浣滅郴緇燂紝鍦ㄨ嚜宸辯殑鐢佃剳涓婇潰錛屼綘鏄笉鏄竴杈瑰惉姝岋紝涓杈硅亰澶╄繕涓杈圭湅緗戦〉鍛紵浣嗗疄闄呬笂錛屽茍涓嶄笂cpu鍦ㄥ悓鏃舵墽琛岃繖浜涚▼搴忥紝cpu鍙槸灝嗘椂闂村垏鍓蹭負鏃墮棿鐗囷紝鐒跺悗灝嗘椂闂寸墖鍒嗛厤緇欒繖浜涚▼搴忥紝鑾峰緱鏃墮棿鐗囩殑紼嬪簭寮濮嬫墽琛岋紝涓嶇瓑鎵ц瀹屾瘯錛屼笅涓▼搴忓張鑾峰緱鏃墮棿鐗囧紑濮嬫墽琛岋紝榪欐牱澶氫釜紼嬪簭杞祦鎵ц涓孌墊椂闂達紝鐢變簬鐜板湪cpu鐨勯珮閫熻綆楄兘鍔涳紝緇欎漢鐨勬劅瑙夊氨鍍忔槸澶氫釜紼嬪簭鍦ㄥ悓鏃舵墽琛屼竴鏍楓?br />涓鑸彲浠ュ湪鍚屼竴鏃墮棿鍐呮墽琛屽涓▼搴忕殑鎿嶄綔緋葷粺閮芥湁榪涚▼鐨勬蹇?涓涓繘紼嬪氨鏄竴涓墽琛屼腑鐨勭▼搴?鑰屾瘡涓涓繘紼嬮兘鏈夎嚜宸辯嫭绔嬬殑涓鍧楀唴瀛樼┖闂?涓緇勭郴緇熻祫婧?鍦ㄨ繘紼嬫蹇典腑,姣忎竴涓繘紼嬬殑鍐呴儴鏁版嵁鍜岀姸鎬侀兘鏄畬鍏ㄧ嫭绔嬬殑.鍥犳鍙互鎯沖儚鍒涘緩騫舵墽琛屼竴涓繘紼嬬殑緋葷粺寮鍍忔槸姣旇緝澶х殑錛屾墍浠ョ嚎紼嬪嚭鐜頒簡銆傚湪java涓紝紼嬪簭閫氳繃嫻佹帶鍒舵潵鎵ц紼嬪簭嫻?紼嬪簭涓崟涓『搴忕殑嫻佹帶鍒剁О涓虹嚎紼?澶氱嚎紼嬪垯鎸囩殑鏄湪鍗曚釜紼嬪簭涓彲浠ュ悓鏃惰繍琛屽涓笉鍚岀殑綰跨▼,鎵ц涓嶅悓鐨勪換鍔?澶氱嚎紼嬫剰鍛崇潃涓涓▼搴忕殑澶氳璇彞鍙互鐪嬩笂鍘誨嚑涔庡湪鍚屼竴鏃墮棿鍐呭悓鏃惰繍琛?錛堜綘鍙互灝嗗墠闈竴鍙ヨ瘽鐨勭▼搴忔崲鎴愯繘紼嬶紝榪涚▼鏄▼搴忕殑涓嬈℃墽琛岃繃紼?鏄郴緇熻繍琛岀▼搴忕殑鍩烘湰鍗曚綅錛?br />
綰跨▼涓庤繘紼嬬浉浼?鏄竴孌靛畬鎴愭煇涓壒瀹氬姛鑳界殑浠g爜,鏄▼搴忎腑鍗曚釜欏哄簭鐨勬祦鎺у埗;浣嗕笌榪涚▼涓嶅悓鐨勬槸,鍚岀被鐨勫涓嚎紼嬫槸鍏變韓涓鍧楀唴瀛樼┖闂村拰涓緇勭郴緇熻祫婧?鑰岀嚎紼嬫湰韜殑鏁版嵁閫氬父鍙湁寰鐞嗗櫒鐨勫瘎瀛樺櫒鏁版嵁,浠ュ強涓涓緵紼嬪簭鎵ц鏃朵嬌鐢ㄧ殑鍫嗘爤.鎵浠ョ郴緇熷湪浜х敓涓涓嚎紼?鎴栬呭湪鍚勪釜綰跨▼涔嬮棿鍒囨崲鏃?璐熸媴瑕佹瘮榪涚▼灝忕殑澶?姝e洜濡傛,綰跨▼涔熻縐頒負杞昏礋鑽瘋繘紼?light-weight process).涓涓繘紼嬩腑鍙互鍖呭惈澶氫釜綰跨▼.
澶氫換鍔℃槸鎸囧湪涓涓郴緇熶腑鍙互鍚屾椂榪愯澶氫釜紼嬪簭,鍗蟲湁澶氫釜鐙珛榪愯鐨勪換鍔?姣忎釜浠誨姟瀵瑰簲涓涓繘紼嬶紝鍚岃繘紼嬩竴鏍?涓涓嚎紼嬩篃鏈変粠鍒涘緩,榪愯鍒版秷浜$殑榪囩▼,縐頒負綰跨▼鐨勭敓鍛藉懆鏈?鐢ㄧ嚎紼嬬殑鐘舵?state)琛ㄦ槑綰跨▼澶勫湪鐢熷懡鍛ㄦ湡鐨勫摢涓樁孌?綰跨▼鏈夊垱寤?鍙繍琛?榪愯涓?闃誨,姝諱骸浜斾腑鐘舵?閫氳繃綰跨▼鐨勬帶鍒朵笌璋冨害鍙嬌綰跨▼鍦ㄨ繖鍑犵鐘舵侀棿杞寲姣忎釜紼嬪簭鑷沖皯鑷姩鎷ユ湁涓涓嚎紼?縐頒負涓葷嚎紼?褰撶▼搴忓姞杞藉埌鍐呭瓨鏃?鍚姩涓葷嚎紼?
[綰跨▼鐨勮繍琛屾満鍒朵互鍙婅皟搴︽ā鍨媇
java涓綰跨▼灝辨槸涓涓被鎴栦竴涓▼搴忔墽琛屾垨綆$悊澶氫釜綰跨▼鎵ц浠誨姟鐨勮兘鍔涳紝姣忎釜綰跨▼鍙互鐙珛浜庡叾浠栫嚎紼嬭岀嫭绔嬭繍琛岋紝褰撶劧涔熷彲浠ュ拰鍏朵粬綰跨▼鍗忓悓榪愯錛屼竴涓被鎺у埗鐫瀹冪殑鎵鏈夌嚎紼嬶紝鍙互鍐沖畾鍝釜綰跨▼寰楀埌浼樺厛綰э紝鍝釜綰跨▼鍙互璁塊棶鍏朵粬綾葷殑璧勬簮錛屽摢涓嚎紼嬪紑濮嬫墽琛岋紝鍝釜淇濇寔浼戠湢鐘舵併?br />涓嬮潰鏄嚎紼嬬殑鏈哄埗鍥撅細
綰跨▼鐨勭姸鎬佽〃紺虹嚎紼嬫鍦ㄨ繘琛岀殑媧誨姩浠ュ強鍦ㄦ鏃墮棿孌靛唴鎵鑳藉畬鎴愮殑浠誨姟.綰跨▼鏈夊垱寤?鍙繍琛?榪愯涓?闃誨,姝諱骸浜斾腑鐘舵?涓涓叿鏈夌敓鍛界殑綰跨▼,鎬繪槸澶勪簬榪欎簲縐嶇姸鎬佷箣涓錛?br />1.鍒涘緩鐘舵?/b>
浣跨敤new榪愮畻絎﹀垱寤轟竴涓嚎紼嬪悗,璇ョ嚎紼嬩粎浠呮槸涓涓┖瀵硅薄,緋葷粺娌℃湁鍒嗛厤璧勬簮,縐拌綰跨▼澶勪簬鍒涘緩鐘舵?new thread)
2.鍙繍琛岀姸鎬?/b>
浣跨敤start()鏂規硶鍚姩涓涓嚎紼嬪悗,緋葷粺涓鴻綰跨▼鍒嗛厤浜嗛櫎CPU澶栫殑鎵闇璧勬簮,浣胯綰跨▼澶勪簬鍙繍琛岀姸鎬?Runnable)
3.榪愯涓姸鎬?/b>
Java榪愯緋葷粺閫氳繃璋冨害閫変腑涓涓猂unnable鐨勭嚎紼?浣垮叾鍗犳湁CPU騫惰漿涓鴻繍琛屼腑鐘舵?Running).姝ゆ椂,緋葷粺鐪熸鎵ц綰跨▼鐨剅un()鏂規硶.
4.闃誨鐘舵?/b>
涓涓鍦ㄨ繍琛岀殑綰跨▼鍥犳煇縐嶅師鍥犱笉鑳界戶緇繍琛屾椂,榪涘叆闃誨鐘舵?Blocked)
5.姝諱骸鐘舵?/b>
綰跨▼緇撴潫鍚庢槸姝諱骸鐘舵?Dead)
鍚屼竴鏃跺埢濡傛灉鏈夊涓嚎紼嬪浜庡彲榪愯鐘舵?鍒欎粬浠渶瑕佹帓闃熺瓑寰匔PU璧勬簮.姝ゆ椂姣忎釜綰跨▼鑷姩鑾峰緱涓涓嚎紼嬬殑浼樺厛綰?priority),浼樺厛綰х殑楂樹綆鍙嶆槧綰跨▼鐨勯噸瑕佹垨绱фョ▼搴?鍙繍琛岀姸鎬佺殑綰跨▼鎸変紭鍏堢駭鎺掗槦,綰跨▼璋冨害渚濇嵁浼樺厛綰у熀紜涓婄殑"鍏堝埌鍏堟湇鍔?鍘熷垯.
綰跨▼璋冨害綆$悊鍣ㄨ礋璐g嚎紼嬫帓闃熷拰CPU鍦ㄧ嚎紼嬮棿鐨勫垎閰?騫剁敱綰跨▼璋冨害綆楁硶榪涜璋冨害.褰撶嚎紼嬭皟搴︾鐞嗗櫒閫夌鏌愪釜綰跨▼鏃?璇ョ嚎紼嬭幏寰桟PU璧勬簮鑰岃繘鍏ヨ繍琛岀姸鎬?
綰跨▼璋冨害鏄厛鍗犲紡璋冨害,鍗沖鏋滃湪褰撳墠綰跨▼鎵ц榪囩▼涓竴涓洿楂樹紭鍏堢駭鐨勭嚎紼嬭繘鍏ュ彲榪愯鐘舵?鍒欒繖涓嚎紼嬬珛鍗寵璋冨害鎵ц.鍏堝崰寮忚皟搴﹀垎涓?鐙崰寮忓拰鍒嗘椂鏂瑰紡.
鐙崰鏂瑰紡涓?褰撳墠鎵ц綰跨▼灝嗕竴鐩存墽琛屼笅鍘?鐩?鍒版墽琛屽畬姣曟垨鐢變簬鏌愮鍘熷洜涓誨姩鏀懼純CPU,鎴朇PU琚竴涓洿楂樹紭鍏堢駭鐨勭嚎紼嬫姠鍗?br />鍒嗘椂鏂瑰紡涓?褰撳墠榪愯綰跨▼鑾峰緱涓涓椂闂寸墖,鏃墮棿鍒版椂,鍗充嬌娌℃湁鎵ц瀹屼篃瑕佽鍑篊PU,榪涘叆鍙繍琛岀姸鎬?絳夊緟涓嬩竴涓椂闂寸墖鐨勮皟搴?緋葷粺閫変腑鍏朵粬鍙繍琛岀姸鎬佺殑綰跨▼鎵ц
鍒嗘椂鏂瑰紡鐨勭郴緇熶嬌姣忎釜綰跨▼宸ヤ綔鑻ュ共姝?瀹炵幇澶氱嚎紼嬪悓鏃惰繍琛?br />
鍙﹀璇鋒敞鎰忎笅闈㈢殑綰跨▼璋冨害瑙勫垯錛堝鏋滄湁涓嶇悊瑙o紝涓嶆ワ紝寰涓嬬湅錛夛細
鈶犲鏋滀袱涓垨鏄袱涓互涓婄殑綰跨▼閮戒慨鏀逛竴涓璞★紝閭d箞鎶婃墽琛屼慨鏀圭殑鏂規硶瀹氫箟涓鴻鍚屾鐨勶紙Synchronized錛?濡傛灉瀵硅薄鏇存柊褰卞搷鍒板彧璇繪柟娉曪紝閭d箞鍙害鏂規硶涔熷簲璇ュ畾涔変負鍚屾鐨?br />鈶″鏋滀竴涓嚎紼嬪繀欏葷瓑寰呬竴涓璞$姸鎬佸彂鐢熷彉鍖栵紝閭d箞瀹冨簲璇ュ湪瀵硅薄鍐呴儴絳夊緟錛岃屼笉鏄湪澶栭儴絳夊緟錛屽畠鍙互璋冪敤涓涓鍚屾鐨勬柟娉曪紝騫惰榪欎釜鏂規硶璋冪敤wait()
鈶㈡瘡褰撲竴涓柟娉曟敼鍙樻煇涓璞$殑鐘舵佺殑鏃跺欙紝瀹冨簲璇ヨ皟鐢╪otifyAll()鏂規硶錛岃繖緇欑瓑寰呴槦鍒楃殑綰跨▼鎻愪緵鏈轟細鏉ョ湅涓鐪嬫墽琛岀幆澧冩槸鍚﹀凡鍙戠敓鏀瑰彉
鈶h浣弚ait(),notify(),notifyAll()鏂規硶灞炰簬Object綾伙紝鑰屼笉鏄疶hread綾伙紝浠旂粏媯鏌ョ湅鏄惁姣忔鎵цwait()鏂規硶閮芥湁鐩稿簲鐨刵otify()鎴杗otifyAll()鏂規硶錛屼笖瀹冧滑浣滅敤涓庣浉鍚岀殑瀵硅薄 鍦╦ava涓瘡涓被閮芥湁涓涓富綰跨▼錛岃鎵ц涓涓▼搴忥紝閭d箞榪欎釜綾誨綋涓竴瀹氳鏈塵ain鏂規硶錛岃繖涓猰an鏂規硶涔熷氨鏄痡ava class涓殑涓葷嚎紼嬨備綘鍙互鑷繁鍒涘緩綰跨▼錛屾湁涓ょ鏂規硶錛屼竴鏄戶鎵縏hread綾伙紝鎴栨槸瀹炵幇Runnable鎺ュ彛銆備竴鑸儏鍐典笅錛屾渶濂介伩鍏嶇戶鎵匡紝鍥犱負java涓槸鍗曟牴緇ф壙錛屽鏋滀綘閫夌敤緇ф壙錛岄偅涔堜綘鐨勭被灝卞け鍘諱簡寮規э紝褰撶劧涔熶笉鑳藉叏鐒跺惁瀹氱戶鎵縏hread,璇ユ柟娉曠紪鍐欑畝鍗?鍙互鐩存帴鎿嶄綔綰跨▼,閫傜敤浜庡崟閲嶇戶鎵挎儏鍐點傝嚦浜庨夌敤閭d竴縐嶏紝鍏蜂綋鎯呭喌鍏蜂綋鍒嗘瀽銆?br />
eg.緇ф壙Thread
public class MyThread_1 extends Thread
{
public void run()
{
//some code
}
}
eg.瀹炵幇Runnable鎺ュ彛
public class MyThread_2 implements Runnable
{
public void run()
{
//some code
}
}
褰撲嬌鐢ㄧ戶鎵垮垱寤虹嚎紼嬶紝榪欐牱鍚姩綰跨▼錛?br />
new MyThread_1().start()
褰撲嬌鐢ㄥ疄鐜版帴鍙e垱寤虹嚎紼嬶紝榪欐牱鍚姩綰跨▼錛?br />
new Thread(new MyThread_2()).start()
娉ㄦ剰錛屽叾瀹炴槸鍒涘緩涓涓嚎紼嬪疄渚嬶紝騫朵互瀹炵幇浜哛unnable鎺ュ彛鐨勭被涓哄弬鏁頒紶鍏ヨ繖涓疄渚嬶紝褰撴墽琛岃繖涓嚎紼嬬殑鏃跺欙紝MyThread_2涓璻un閲岄潰鐨勪唬鐮佸皢琚墽琛屻?br />涓嬮潰鏄畬鎴愮殑渚嬪瓙錛?br />
public class MyThread implements Runnable
{
public void run()
{
System.out.println("My Name is "+Thread.currentThread().getName());
}
public static void main(String[] args)
{
new Thread(new MyThread()).start();
}
}
鎵ц鍚庡皢鎵撳嵃鍑猴細
My Name is Thread-0
浣犱篃鍙互鍒涘緩澶氫釜綰跨▼錛屽儚涓嬮潰榪欐牱
new Thread(new MyThread()).start();
new Thread(new MyThread()).start();
new Thread(new MyThread()).start();
閭d箞浼氭墦鍗板嚭錛?br />
My Name is Thread-0
My Name is Thread-1
My Name is Thread-2
鐪嬩簡涓婇潰鐨勭粨鏋滐紝浣犲彲鑳戒細璁や負綰跨▼鐨勬墽琛岄『搴忔槸渚濇鎵ц鐨勶紝浣嗘槸閭e彧鏄竴鑸儏鍐碉紝鍗冧竾涓嶈鐢ㄤ互涓烘槸綰跨▼鐨勬墽琛屾満鍒訛紱褰卞搷綰跨▼鎵ц欏哄簭鐨勫洜绱犳湁鍑犵偣錛氶鍏堢湅鐪嬪墠闈㈡彁鍒扮殑浼樺厛綰у埆
public class MyThread implements Runnable
{
public void run()
{
System.out.println("My Name is "+Thread.currentThread().getName());
}
public static void main(String[] args)
{
Thread t1=new Thread(new MyThread());
Thread t2=new Thread(new MyThread());
Thread t3=new Thread(new MyThread());
t2.setPriority(Thread.MAX_PRIORITY);//璧嬩簣鏈楂樹紭鍏堢駭
t1.start();
t2.start();
t3.start();
}
}
鍐嶇湅鐪嬬粨鏋滐細
My Name is Thread-1
My Name is Thread-0
My Name is Thread-2
綰跨▼鐨勪紭鍏堢駭鍒嗕負10綰э紝鍒嗗埆鐢?鍒?0鐨勬暣鏁頒唬琛紝榛樿鎯呭喌鏄?銆備笂闈㈢殑t2.setPriority(Thread.MAX_PRIORITY)絳変環涓巘2.setPriority(10錛?br />鐒跺悗鏄嚎紼嬬▼搴忔湰韜殑璁捐錛屾瘮濡備嬌鐢╯leep,yield,join錛寃ait絳夋柟娉曪紙璇︽儏璇風湅JDKDocument)
public class MyThread implements Runnable
{
public void run()
{
try
{
int sleepTime=(int)(Math.random()*100);//浜х敓闅忔満鏁板瓧錛?br />Thread.currentThread().sleep(sleepTime);//璁╁叾浼戠湢涓瀹氭椂闂達紝鏃墮棿鍙堜笂闈leepTime鍐沖畾
//public static void sleep(long millis)throw InterruptedException 錛圓PI錛?br />System.out.println(Thread.currentThread().getName()+" 鐫′簡 "+sleepTime);
}catch(InterruptedException ie)//鐢變簬綰跨▼鍦ㄤ紤鐪犲彲鑳借涓柇錛屾墍浠ヨ皟鐢╯leep鏂規硶鐨勬椂鍊欓渶瑕佹崟鎹夊紓甯?br />{
ie.printStackTrace();
}
}
public static void main(String[] args)
{
Thread t1=new Thread(new MyThread());
Thread t2=new Thread(new MyThread());
Thread t3=new Thread(new MyThread());
t1.start();
t2.start();
t3.start();
}
}
鎵ц鍚庤瀵熷叾杈撳嚭錛?br />
Thread-0 鐫′簡 11
Thread-2 鐫′簡 48
Thread-1 鐫′簡 69
涓婇潰鐨勬墽琛岀粨鏋滄槸闅忔満鐨勶紝鍐嶆墽琛屽緢鍙兘鍑虹幇涓嶅悓鐨勭粨鏋溿傜敱浜庝笂闈㈡垜鍦╮un涓坊鍔犱簡浼戠湢璇彞錛屽綋綰跨▼浼戠湢鐨勬椂鍊欏氨浼氳鍑篶pu錛宑pu灝嗕細閫夋嫨鎵ц澶勪簬runnable鐘舵佷腑鐨勫叾浠栫嚎紼嬶紝褰撶劧涔熷彲鑳藉嚭鐜拌繖縐嶆儏鍐碉紝浼戠湢鐨凾hread绔嬪嵆榪涘叆浜唕unnable鐘舵侊紝cpu鍐嶆鎵ц瀹冦?br />[綰跨▼緇勬蹇礭
綰跨▼鏄彲浠ヨ緇勭粐鐨勶紝java涓瓨鍦ㄧ嚎紼嬬粍鐨勬蹇碉紝姣忎釜綰跨▼閮芥槸涓涓嚎紼嬬粍鐨勬垚鍛?綰跨▼緇勬妸澶氫釜綰跨▼闆嗘垚涓轟竴涓璞?閫氳繃綰跨▼緇勫彲浠ュ悓鏃跺鍏朵腑鐨勫涓嚎紼嬭繘琛屾搷浣?濡傚惎鍔ㄤ竴涓嚎紼嬬粍鐨勬墍鏈夌嚎紼嬬瓑.Java鐨勭嚎紼嬬粍鐢眏ava.lang鍖呬腑鐨凾hread鈥斺擥roup綾誨疄鐜?
ThreadGroup綾葷敤鏉ョ鐞嗕竴緇勭嚎紼?鍖呮嫭:綰跨▼鐨勬暟鐩?綰跨▼闂寸殑鍏崇郴,綰跨▼姝e湪鎵ц鐨勬搷浣?浠ュ強綰跨▼灝嗚鍚姩鎴栫粓姝㈡椂闂寸瓑.綰跨▼緇勮繕鍙互鍖呭惈綰跨▼緇?鍦↗ava鐨勫簲鐢ㄧ▼搴忎腑,鏈楂樺眰鐨勭嚎紼嬬粍鏄悕浣峬ain鐨勭嚎紼嬬粍,鍦╩ain涓繕鍙互鍔犲叆綰跨▼鎴栫嚎紼嬬粍,鍦╩ian鐨勫瓙綰跨▼緇勪腑涔熷彲浠ュ姞鍏ョ嚎紼嬪拰綰跨▼緇?褰㈡垚綰跨▼緇勫拰綰跨▼涔嬮棿鐨勬爲鐘剁戶鎵垮叧緋匯傚儚涓婇潰鍒涘緩鐨勭嚎紼嬮兘鏄睘浜巑ain榪欎釜綰跨▼緇勭殑銆?br />鍊熺敤涓婇潰鐨勪緥瀛愶紝main閲岄潰鍙互榪欐牱鍐欙細
public static void main(String[] args)
{
/***************************************
ThreadGroup(String name)
ThreadGroup(ThreadGroup parent, String name)
***********************************/
ThreadGroup group1=new ThreadGroup("group1");
ThreadGroup group2=new ThreadGroup(group1,"group2");
Thread t1=new Thread(group2,new MyThread());
Thread t2=new Thread(group2,new MyThread());
Thread t3=new Thread(group2,new MyThread());
t1.start();
t2.start();
t3.start();
}
綰跨▼緇勭殑宓屽錛宼1,t2,t3琚姞鍏roup2,group2鍔犲叆group1銆?br />鍙﹀涓涓瘮杈冨灝辨槸鍏充簬綰跨▼鍚屾鏂歸潰鐨勶紝璇曟兂榪欐牱涓縐嶆儏鍐碉紝浣犳湁涓絎斿瓨嬈懼湪閾惰錛屼綘鍦ㄤ竴瀹墮摱琛屼負浣犵殑璐︽埛瀛樻錛岃屼綘鐨勫瀛愬湪鍙︿竴瀹墮摱琛屼粠榪欎釜璐︽埛鎻愭錛岀幇鍦ㄤ綘鏈?000鍧楀湪浣犵殑璐︽埛閲岄潰銆備綘瀛樺叆浜?000錛屼絾鏄敱浜庡彟涓鏂逛篃鍦ㄥ榪欑瑪瀛樻榪涜鎿嶄綔錛屼漢瀹跺紑濮嬫墽琛岀殑鏃跺欏彧鐪嬪埌璐︽埛閲岄潰鍘熸潵鐨?000鍏冿紝褰撲綘鐨勫瀛愭彁嬈?000鍏冨悗錛屼綘濡誨瓙鎵鍦ㄧ殑閾惰灝辮涓轟綘鐨勮處鎴烽噷闈㈡病鏈夐挶浜嗭紝鑰屼綘鎵鍦ㄧ殑閾惰鍗磋涓轟綘榪樻湁2000鍏冦?br />鐪嬬湅涓嬮潰鐨勪緥瀛愶細
class BlankSaving //鍌ㄨ搫璐︽埛
{
private static int money=10000;
public void add(int i)
{
money=money+i;
System.out.println("Husband 鍚戦摱琛屽瓨鍏ヤ簡 [錕?+i+"]");
}
public void get(int i)
{
money=money-i;
System.out.println("Wife 鍚戦摱琛屽彇璧頒簡 [錕?+i+"]");
if(money<0)
System.out.println("浣欓涓嶈凍錛?);
}
public int showMoney()
{
return money;
}
}
class Operater implements Runnable
{
String name;
BlankSaving bs;
public Operater(BlankSaving b,String s)
{
name=s;
bs=b;
}
public static void oper(String name,BlankSaving bs)
{
if(name.equals("husband"))
{
try
{
for(int i=0;i<10;i++)
{
Thread.currentThread().sleep((int)(Math.random()*300));
bs.add(1000);
}
}catch(InterruptedException e){}
}else
{
try
{
for(int i=0;i<10;i++)
{
Thread.currentThread().sleep((int)(Math.random()*300));
bs.get(1000);
}
}catch(InterruptedException e){}
}
}
public void run()
{
oper(name,bs);
}
}
public class BankTest
{
public static void main(String[] args)throws InterruptedException
{
BlankSaving bs=new BlankSaving();
Operater o1=new Operater(bs,"husband");
Operater o2=new Operater(bs,"wife");
Thread t1=new Thread(o1);
Thread t2=new Thread(o2);
t1.start();
t2.start();
Thread.currentThread().sleep(500);
}
}
涓嬮潰鏄叾涓竴嬈$殑鎵ц緇撴灉錛?br />
---------first--------------
Husband 鍚戦摱琛屽瓨鍏ヤ簡 [錕?000]
Wife 鍚戦摱琛屽彇璧頒簡 [錕?000]
Wife 鍚戦摱琛屽彇璧頒簡 [錕?000]
Husband 鍚戦摱琛屽瓨鍏ヤ簡 [錕?000]
Wife 鍚戦摱琛屽彇璧頒簡 [錕?000]
Husband 鍚戦摱琛屽瓨鍏ヤ簡 [錕?000]
Wife 鍚戦摱琛屽彇璧頒簡 [錕?000]
Husband 鍚戦摱琛屽瓨鍏ヤ簡 [錕?000]
Wife 鍚戦摱琛屽彇璧頒簡 [錕?000]
Husband 鍚戦摱琛屽瓨鍏ヤ簡 [錕?000]
Husband 鍚戦摱琛屽瓨鍏ヤ簡 [錕?000]
Wife 鍚戦摱琛屽彇璧頒簡 [錕?000]
Husband 鍚戦摱琛屽瓨鍏ヤ簡 [錕?000]
Husband 鍚戦摱琛屽瓨鍏ヤ簡 [錕?000]
Wife 鍚戦摱琛屽彇璧頒簡 [錕?000]
Wife 鍚戦摱琛屽彇璧頒簡 [錕?000]
Husband 鍚戦摱琛屽瓨鍏ヤ簡 [錕?000]
Wife 鍚戦摱琛屽彇璧頒簡 [錕?000]
Wife 鍚戦摱琛屽彇璧頒簡 [錕?000]
Husband 鍚戦摱琛屽瓨鍏ヤ簡 [錕?000]
鐪嬪埌浜嗗悧錛岃繖鍙笉鏄紜殑闇姹傦紝鍦╤usband榪樻病鏈夌粨鏉熸搷浣滅殑鏃跺欙紝wife灝辨彃浜嗚繘鏉ワ紝榪欐牱寰堝彲鑳藉鑷存剰澶栫殑緇撴灉銆傝В鍐沖姙娉曞緢綆鍗曪紝灝辨槸灝嗗鏁版嵁榪涜鎿嶄綔鏂規硶澹版槑涓簊ynchronized,褰撴柟娉曡璇ュ叧閿瓧澹版槑鍚庯紝涔熷氨鎰忓懗鐫錛屽鏋滆繖涓暟鎹鍔犻攣錛屽彧鏈変竴涓璞″緱鍒拌繖涓暟鎹殑閿佺殑鏃跺欒瀵硅薄鎵嶈兘瀵硅繖涓暟鎹繘琛屾搷浣溿備篃灝辨槸褰撲綘瀛樻鐨勬椂鍊欙紝榪欑瑪璐︽埛鍦ㄥ叾浠栧湴鏂規槸涓嶈兘榪涜鎿嶄綔鐨勶紝鍙湁浣犲瓨嬈懼畬姣曪紝閾惰綆$悊浜哄憳灝嗚處鎴瘋В閿侊紝鍏朵粬浜烘墠鑳藉榪欎釜璐︽埛榪涜鎿嶄綔銆?br />淇敼public static void oper(String name,BlankSaving bs)涓簆ublic static void oper(String name,BlankSaving bs)錛屽啀鐪嬬湅緇撴灉:
Husband 鍚戦摱琛屽瓨鍏ヤ簡 [錕?000]
Husband 鍚戦摱琛屽瓨鍏ヤ簡 [錕?000]
Husband 鍚戦摱琛屽瓨鍏ヤ簡 [錕?000]
Husband 鍚戦摱琛屽瓨鍏ヤ簡 [錕?000]
Husband 鍚戦摱琛屽瓨鍏ヤ簡 [錕?000]
Husband 鍚戦摱琛屽瓨鍏ヤ簡 [錕?000]
Husband 鍚戦摱琛屽瓨鍏ヤ簡 [錕?000]
Husband 鍚戦摱琛屽瓨鍏ヤ簡 [錕?000]
Husband 鍚戦摱琛屽瓨鍏ヤ簡 [錕?000]
Husband 鍚戦摱琛屽瓨鍏ヤ簡 [錕?000]
Wife 鍚戦摱琛屽彇璧頒簡 [錕?000]
Wife 鍚戦摱琛屽彇璧頒簡 [錕?000]
Wife 鍚戦摱琛屽彇璧頒簡 [錕?000]
Wife 鍚戦摱琛屽彇璧頒簡 [錕?000]
Wife 鍚戦摱琛屽彇璧頒簡 [錕?000]
Wife 鍚戦摱琛屽彇璧頒簡 [錕?000]
Wife 鍚戦摱琛屽彇璧頒簡 [錕?000]
Wife 鍚戦摱琛屽彇璧頒簡 [錕?000]
Wife 鍚戦摱琛屽彇璧頒簡 [錕?000]
Wife 鍚戦摱琛屽彇璧頒簡 [錕?000]
褰撲笀澶畬鎴愭搷浣滃悗錛屽瀛愭墠寮濮嬫墽琛屾搷浣滐紝榪欐牱鐨勮瘽錛屽鍏變韓瀵硅薄鐨勬搷浣滃氨涓嶄細鏈夐棶棰樹簡銆?br />[wait and notify]
浣犲彲浠ュ埄鐢ㄨ繖涓や釜鏂規硶寰堝ソ鐨勬帶鍒剁嚎紼嬬殑鎵ц嫻佺▼錛屽綋綰跨▼璋冪敤wait鏂規硶鍚庯紝綰跨▼灝嗚鎸傝搗錛岀洿鍒拌鍙︿竴綰跨▼鍞ら啋錛坣otify錛夋垨鍒欐槸濡傛灉wait鏂規硶鎸囧畾鏈夋椂闂村緱璇濓紝鍦ㄦ病鏈夎鍞ら啋鐨勬儏鍐典笅錛屾寚瀹氭椂闂存椂闂磋繃鍚庝篃灝嗚嚜鍔ㄨ鍞ら啋銆備絾鏄娉ㄦ剰涓瀹氾紝琚敜閱掑茍涓嶆槸鎸囬┈涓婃墽琛岋紝鑰屾槸浠庣粍濉炵姸鎬佸彉涓哄彲榪愯鐘舵侊紝鍏舵槸鍚﹁繍琛岃繕瑕佺湅cpu鐨勮皟搴︺?br />浜嬩緥浠g爜錛?br />
class MyThread_1 extends Thread
{
Object lock;
public MyThread_1(Object o)
{
lock=o;
}
public void run()
{
try
{
synchronized(lock)
{
System.out.println("Enter Thread_1 and wait");
lock.wait();
System.out.println("be notified");
}
}catch(InterruptedException e){}
}
}
class MyThread_2 extends Thread
{
Object lock;
public MyThread_2(Object o)
{
lock=o;
}
public void run()
{
synchronized(lock)
{
System.out.println("Enter Thread_2 and notify");
lock.notify();
}
}
}
public class MyThread
{
public static void main(String[] args)
{
int[] in=new int[0];//notice
MyThread_1 t1=new MyThread_1(in);
MyThread_2 t2=new MyThread_2(in);
t1.start();
t2.start();
}
}
鎵ц緇撴灉濡備笅錛?br />
Enter Thread_1 and wait
Enter Thread_2 and notify
Thread_1 be notified
鍙兘浣犳敞鎰忓埌浜嗗湪浣跨敤wait and notify鏂規硶寰楁椂鍊欐垜浣跨敤浜唖ynchronized鍧楁潵鍖呰榪欎袱涓柟娉曪紝榪欐槸鐢變簬璋冪敤榪欎袱涓柟娉曠殑鏃跺欑嚎紼嬪繀欏昏幏寰楅攣錛屼篃灝辨槸涓婇潰浠g爜涓殑lock[]錛屽鏋滀綘涓嶇敤synchronized鍖呰榪欎袱涓柟娉曠殑寰楄瘽錛屽張鎴栧垯閿佷笉涓鏄悓涓鎶婏紝姣斿鍦∕yThread_2涓璼ynchronized(lock)鏀逛負synchronized(this),閭d箞鎵ц榪欎釜紼嬪簭鐨勬椂鍊欏皢浼氭姏鍑簀ava.lang.IllegalMonitorStateException鎵ц鏈熷紓甯搞傚彟澶杦ait and notify鏂規硶鏄疧bject涓殑錛屽茍涓嶅湪Thread榪欎釜綾諱腑銆傛渶鍚庝綘鍙兘娉ㄦ剰鍒頒簡榪欑偣錛歩nt[] in=new int[0];涓轟粈涔堜笉鏄垱寤簄ew Object鑰屾槸涓涓?闀垮害鐨勬暟緇勶紝閭f槸鍥犱負鍦╦ava涓垱寤轟竴涓?闀垮害鐨勬暟緇勬潵鍏呭綋閿佹洿鍔犻珮鏁堛?br />
Thread浣滀負java涓竴閲嶈緇勬垚閮ㄥ垎錛屽綋鐒惰繕鏈夊緢澶氬湴鏂歸渶瑕佹洿娣卞埢鐨勮璇嗭紝涓婇潰鍙槸瀵筎hread鐨勪竴浜涘父璇嗗拰鏄撻敊闂鍋氫簡涓涓畝瑕佺殑鎬葷粨錛岃嫢瑕佺湡姝g殑鎺屾彙java鐨勭嚎紼嬶紝榪橀渶瑕佽嚜宸卞鍋氭葷粨
]]>
銆銆
final鈥斾慨楗扮錛堝叧閿瓧錛夊鏋滀竴涓被琚0鏄庝負final錛屾剰鍛崇潃瀹冧笉鑳藉啀媧劇敓鍑烘柊鐨勫瓙綾伙紝涓嶈兘浣滀負鐖剁被琚戶鎵褲傚洜姝や竴涓被涓嶈兘鏃㈣澹版槑涓?abstract鐨勶紝鍙堣澹版槑涓篺inal鐨勩傚皢鍙橀噺鎴栨柟娉曞0鏄庝負final錛屽彲浠ヤ繚璇佸畠浠湪浣跨敤涓笉琚敼鍙樸傝澹版槑涓篺inal鐨勫彉閲忓繀欏誨湪澹版槑鏃剁粰瀹氬垵鍊鹼紝鑰屽湪浠ュ悗鐨勫紩鐢ㄤ腑鍙兘璇誨彇錛屼笉鍙慨鏀廣傝澹版槑涓篺inal鐨勬柟娉曚篃鍚屾牱鍙兘浣跨敤錛屼笉鑳介噸杞姐?br />
銆銆
finally鈥斿啀寮傚父澶勭悊鏃舵彁渚?finally 鍧楁潵鎵ц浠諱綍娓呴櫎鎿嶄綔銆傚鏋滄姏鍑轟竴涓紓甯革紝閭d箞鐩稿尮閰嶇殑 catch 瀛愬彞灝變細鎵ц錛岀劧鍚庢帶鍒跺氨浼氳繘鍏?finally 鍧楋紙濡傛灉鏈夌殑璇濓級銆?br />
銆銆
finalize鈥旀柟娉曞悕銆侸ava 鎶鏈厑璁鎬嬌鐢?finalize() 鏂規硶鍦ㄥ瀮鍦炬敹闆嗗櫒灝嗗璞′粠鍐呭瓨涓竻闄ゅ嚭鍘諱箣鍓嶅仛蹇呰鐨勬竻鐞嗗伐浣溿傝繖涓柟娉曟槸鐢卞瀮鍦炬敹闆嗗櫒鍦ㄧ‘瀹氳繖涓璞℃病鏈夎寮曠敤鏃跺榪欎釜瀵硅薄璋冪敤鐨勩傚畠鏄湪 Object 綾諱腑瀹氫箟鐨勶紝鍥犳鎵鏈夌殑綾婚兘緇ф壙浜嗗畠銆傚瓙綾昏鐩?finalize() 鏂規硶浠ユ暣鐞嗙郴緇熻祫婧愭垨鑰呮墽琛屽叾浠栨竻鐞嗗伐浣溿俧inalize() 鏂規硶鏄湪鍨冨溇鏀墮泦鍣ㄥ垹闄ゅ璞′箣鍓嶅榪欎釜瀵硅薄璋冪敤鐨勩?br />
銆銆
絎簩錛孉nonymous Inner Class (鍖垮悕鍐呴儴綾? 鏄惁鍙互extends(緇ф壙)鍏跺畠綾伙紝鏄惁鍙互implements(瀹炵幇)interface(鎺ュ彛)?
銆銆
鍖垮悕鐨勫唴閮ㄧ被鏄病鏈夊悕瀛楃殑鍐呴儴綾匯備笉鑳絜xtends(緇ф壙) 鍏跺畠綾伙紝浣嗕竴涓唴閮ㄧ被鍙互浣滀負涓涓帴鍙o紝鐢卞彟涓涓唴閮ㄧ被瀹炵幇銆?br />
銆銆
絎笁錛孲tatic Nested Class 鍜?Inner Class鐨勪笉鍚岋紝璇村緱瓚婂瓚婂ソ(闈㈣瘯棰樻湁鐨勫緢絎肩粺)銆?br />
銆銆
Nested Class 錛堜竴鑸槸C++鐨勮娉曪級錛孖nner Class (涓鑸槸JAVA鐨勮娉?銆侸ava鍐呴儴綾諱笌C++宓屽綾繪渶澶х殑涓嶅悓灝卞湪浜庢槸鍚︽湁鎸囧悜澶栭儴鐨勫紩鐢ㄤ笂銆傚叿浣撳彲瑙乭ttp: //www.frontfree.net/articles/services/view.asp?id=704&page=1
銆銆
娉細 闈欐佸唴閮ㄧ被錛圛nner Class錛夋剰鍛崇潃1鍒涘緩涓涓猻tatic鍐呴儴綾葷殑瀵硅薄錛屼笉闇瑕佷竴涓閮ㄧ被瀵硅薄錛?涓嶈兘浠庝竴涓猻tatic鍐呴儴綾葷殑涓涓璞¤闂竴涓閮ㄧ被瀵硅薄
銆銆
絎洓錛?amp;鍜?amp;&鐨勫尯鍒?br />
銆銆
&鏄綅榪愮畻絎︺?amp;&鏄竷灝旈昏緫榪愮畻絎︺?br />
銆銆
絎簲錛孒ashMap鍜孒ashtable鐨勫尯鍒?br />
銆銆
閮藉睘浜嶮ap鎺ュ彛鐨勭被錛屽疄鐜頒簡灝嗘儫涓閿槧灝勫埌鐗瑰畾鐨勫間笂銆?br />
銆銆
HashMap 綾繪病鏈夊垎綾繪垨鑰呮帓搴忋傚畠鍏佽涓涓?null 閿拰澶氫釜 null 鍊箋?br />
銆銆
Hashtable 綾諱技浜?HashMap錛屼絾鏄笉鍏佽 null 閿拰 null 鍊箋傚畠涔熸瘮 HashMap 鎱紝鍥犱負瀹冩槸鍚屾鐨勩?br />
銆銆
絎叚錛孋ollection 鍜?Collections鐨勫尯鍒?br />
銆銆
Collections鏄釜java.util涓嬬殑綾伙紝瀹冨寘鍚湁鍚勭鏈夊叧闆嗗悎鎿嶄綔鐨勯潤鎬佹柟娉曘?br />
銆銆
Collection鏄釜java.util涓嬬殑鎺ュ彛錛屽畠鏄悇縐嶉泦鍚堢粨鏋勭殑鐖舵帴鍙c?br />
銆銆
絎竷錛屼粈涔堟椂鍊欑敤assert銆?br />
銆銆
鏂█鏄竴涓寘鍚竷灝旇〃杈懼紡鐨勮鍙ワ紝鍦ㄦ墽琛岃繖涓鍙ユ椂鍋囧畾璇ヨ〃杈懼紡涓?true銆傚鏋滆〃杈懼紡璁$畻涓?false錛岄偅涔堢郴緇熶細鎶ュ憡涓涓?Assertionerror銆傚畠鐢ㄤ簬璋冭瘯鐩殑錛?br />
銆銆
assert(a > 0); // throws an Assertionerror if a <= 0
銆銆
鏂█鍙互鏈変袱縐嶅艦寮忥細
銆銆
assert Expression1 ;
銆
assert Expression1 : Expression2 ;
銆銆
Expression1 搴旇鎬繪槸浜х敓涓涓竷灝斿箋?br />
銆銆
Expression2 鍙互鏄緱鍑轟竴涓肩殑浠繪剰琛ㄨ揪寮忋傝繖涓肩敤浜庣敓鎴愭樉紺烘洿澶氳皟璇曚俊鎭殑 String 娑堟伅銆?br />
銆銆
鏂█鍦ㄩ粯璁ゆ儏鍐典笅鏄鐢ㄧ殑銆傝鍦ㄧ紪璇戞椂鍚敤鏂█錛岄渶瑕佷嬌鐢?source 1.4 鏍囪錛?br />
銆銆
javac -source 1.4 Test.java
銆銆
瑕佸湪榪愯鏃跺惎鐢ㄦ柇璦錛屽彲浣跨敤 -enableassertions 鎴栬?-ea 鏍囪銆?br />
銆銆
瑕佸湪榪愯鏃墮夋嫨紱佺敤鏂█錛屽彲浣跨敤 -da 鎴栬?-disableassertions 鏍囪銆?br />
銆銆
瑕佺郴緇熺被涓惎鐢ㄦ柇璦錛屽彲浣跨敤 -esa 鎴栬?-dsa 鏍囪銆傝繕鍙互鍦ㄥ寘鐨勫熀紜涓婂惎鐢ㄦ垨鑰呯鐢ㄦ柇璦銆?br />
銆銆
鍙互鍦ㄩ璁℃甯告儏鍐典笅涓嶄細鍒拌揪鐨勪換浣曚綅緗笂鏀劇疆鏂█銆傛柇璦鍙互鐢ㄤ簬楠岃瘉浼犻掔粰縐佹湁鏂規硶鐨勫弬鏁般備笉榪囷紝鏂█涓嶅簲璇ョ敤浜庨獙璇佷紶閫掔粰鍏湁鏂規硶鐨勫弬鏁幫紝鍥犱負涓嶇鏄惁鍚敤浜嗘柇璦錛屽叕鏈夋柟娉曢兘蹇呴』媯鏌ュ叾鍙傛暟銆備笉榪囷紝鏃㈠彲浠ュ湪鍏湁鏂規硶涓紝涔熷彲浠ュ湪闈炲叕鏈夋柟娉曚腑鍒╃敤鏂█嫻嬭瘯鍚庣疆鏉′歡銆傚彟澶栵紝鏂█涓嶅簲璇ヤ互浠諱綍鏂瑰紡鏀瑰彉紼嬪簭鐨勭姸鎬併?
銆銆
絎叓錛孏C鏄粈涔? 涓轟粈涔堣鏈塆C? (鍩虹)銆?
銆銆
GC鏄瀮鍦炬敹闆嗗櫒銆侸ava 紼嬪簭鍛樹笉鐢ㄦ媴蹇冨唴瀛樼鐞嗭紝鍥犱負鍨冨溇鏀墮泦鍣ㄤ細鑷姩榪涜綆$悊銆傝璇鋒眰鍨冨溇鏀墮泦錛屽彲浠ヨ皟鐢ㄤ笅闈㈢殑鏂規硶涔嬩竴錛?br />
銆銆
System.gc()
銆銆
Runtime.getRuntime().gc()
銆銆
絎節錛孲tring s = new String("xyz");鍒涘緩浜嗗嚑涓猄tring Object?
銆銆
涓や釜瀵硅薄錛屼竴涓槸"xyx",涓涓槸鎸囧悜"xyx"鐨勫紩鐢ㄥ璞銆?br />
銆銆
絎崄錛孧ath.round(11.5)絳夋柤澶氬皯? Math.round(-11.5)絳夋柤澶氬皯?
銆銆銆銆
Math.round(11.5)榪斿洖錛坙ong錛?2錛孧ath.round(-11.5)榪斿洖錛坙ong錛?11;
銆銆
絎崄涓錛宻hort s1 = 1; s1 = s1 + 1;鏈変粈涔堥敊? short s1 = 1; s1 += 1;鏈変粈涔堥敊?
銆銆
short s1 = 1; s1 = s1 + 1;鏈夐敊錛宻1鏄痵hort鍨嬶紝s1+1鏄痠nt鍨?涓嶈兘鏄懼紡杞寲涓簊hort鍨嬨傚彲淇敼涓簊1 =(short)(s1 + 1) 銆俿hort s1 = 1; s1 += 1姝g‘銆?br />
銆銆
絎崄浜岋紝sleep() 鍜?wait() 鏈変粈涔堝尯鍒? 鎼炵嚎紼嬬殑鏈鐖?br />
銆銆
sleep()鏂規硶鏄嬌綰跨▼鍋滄涓孌墊椂闂寸殑鏂規硶銆傚湪sleep 鏃墮棿闂撮殧鏈熸弧鍚庯紝綰跨▼涓嶄竴瀹氱珛鍗蟲仮澶嶆墽琛屻傝繖鏄洜涓哄湪閭d釜鏃跺埢錛屽叾瀹冪嚎紼嬪彲鑳芥鍦ㄨ繍琛岃屼笖娌℃湁琚皟搴︿負鏀懼純鎵ц錛岄櫎闈?br />
(a)"閱掓潵"鐨勭嚎紼嬪叿鏈夋洿楂樼殑浼樺厛綰с?br />
銆銆
(b)姝e湪榪愯鐨勭嚎紼嬪洜涓哄叾瀹冨師鍥犺岄樆濉炪?br />
銆銆
wait()鏄嚎紼嬩氦浜掓椂錛屽鏋滅嚎紼嬪涓涓悓姝ュ璞 鍙戝嚭涓涓獁ait()璋冪敤錛岃綰跨▼浼氭殏鍋滄墽琛岋紝琚皟瀵硅薄榪涘叆絳夊緟鐘舵侊紝鐩村埌琚敜閱掓垨絳夊緟鏃墮棿鍒般?br />
銆銆
絎崄涓夛紝Java鏈夋病鏈塯oto?
銆銆
Goto鈥攋ava涓殑淇濈暀瀛楋紝鐜板湪娌℃湁鍦╦ava涓嬌鐢ㄣ?br />
銆銆
絎崄鍥涳紝鏁扮粍鏈夋病鏈塴ength()榪欎釜鏂規硶? String鏈夋病鏈塴ength()榪欎釜鏂規硶錛?br />
銆銆
鏁扮粍娌℃湁length()榪欎釜鏂規硶錛屾湁length鐨勫睘鎬с?br />
銆銆
String鏈夋湁length()榪欎釜鏂規硶銆?br />
銆銆
絎崄浜旓紝Overload鍜孫verride鐨勫尯鍒侽verloaded鐨勬柟娉曟槸鍚﹀彲浠ユ敼鍙樿繑鍥炲肩殑綾誨瀷?
銆銆
鏂規硶鐨勯噸鍐橭verriding鍜岄噸杞絆verloading鏄疛ava澶氭佹х殑涓嶅悓琛ㄧ幇銆傞噸鍐橭verriding鏄埗綾諱笌瀛愮被涔嬮棿澶氭佹х殑涓縐嶈〃鐜幫紝閲嶈澆Overloading鏄竴涓被涓鎬佹х殑涓縐嶈〃鐜般傚鏋滃湪瀛愮被涓畾涔夋煇鏂規硶涓庡叾鐖剁被鏈夌浉鍚岀殑鍚嶇О鍜屽弬鏁幫紝鎴戜滑璇磋鏂規硶琚噸鍐?(Overriding)銆傚瓙綾葷殑瀵硅薄浣跨敤榪欎釜鏂規硶鏃訛紝灝嗚皟鐢ㄥ瓙綾諱腑鐨勫畾涔夛紝瀵瑰畠鑰岃█錛岀埗綾諱腑鐨勫畾涔夊鍚岃"灞忚斀"浜嗐傚鏋滃湪涓涓被涓畾涔変簡澶氫釜鍚屽悕鐨勬柟娉曪紝瀹冧滑鎴栨湁涓嶅悓鐨勫弬鏁頒釜鏁版垨鏈変笉鍚岀殑鍙傛暟綾誨瀷錛屽垯縐頒負鏂規硶鐨勯噸杞?Overloading)銆侽verloaded鐨勬柟娉曟槸鍙互鏀瑰彉榪斿洖鍊肩殑綾誨瀷銆?br />
銆銆
絎崄鍏紝Set閲岀殑鍏冪礌鏄笉鑳介噸澶嶇殑錛岄偅涔堢敤浠涔堟柟娉曟潵鍖哄垎閲嶅涓庡惁鍛? 鏄敤==榪樻槸equals()? 瀹冧滑鏈変綍鍖哄埆?
銆銆
Set閲岀殑鍏冪礌鏄笉鑳介噸澶嶇殑錛岄偅涔堢敤iterator()鏂規硶鏉ュ尯鍒嗛噸澶嶄笌鍚︺俥quals()鏄垽璇諱袱涓猄et鏄惁鐩哥瓑銆?br />
銆銆
equals()鍜?=鏂規硶鍐沖畾寮曠敤鍊兼槸鍚︽寚鍚戝悓涓瀵硅薄equals()鍦ㄧ被涓瑕嗙洊錛屼負鐨勬槸褰撲袱涓垎紱葷殑瀵硅薄鐨勫唴瀹瑰拰綾誨瀷鐩擱厤鐨勮瘽錛岃繑鍥炵湡鍊箋?br />
銆銆
絎崄涓冿紝緇欐垜涓涓綘鏈甯歌鍒扮殑runtime exception銆?br />
銆銆
ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException, 銆銆ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFORMatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException
銆銆
絎崄鍏紝error鍜宔xception鏈変粈涔堝尯鍒?
銆銆
error 琛ㄧず鎭㈠涓嶆槸涓嶅彲鑳戒絾寰堝洶闅劇殑鎯呭喌涓嬬殑涓縐嶄弗閲嶉棶棰樸傛瘮濡傝鍐呭瓨婧㈠嚭銆備笉鍙兘鎸囨湜紼嬪簭鑳藉鐞嗚繖鏍風殑鎯呭喌銆?br />
銆銆
exception 琛ㄧず涓縐嶈璁℃垨瀹炵幇闂銆備篃灝辨槸璇達紝瀹冭〃紺哄鏋滅▼搴忚繍琛屾甯革紝浠庝笉浼氬彂鐢熺殑鎯呭喌銆?br />
銆銆
絎崄涔濓紝List, Set, Map鏄惁緇ф壙鑷狢ollection鎺ュ彛?
銆銆
List錛孲et鏄?br />
銆銆
Map涓嶆槸
銆銆
絎簩鍗侊紝abstract class鍜宨nterface鏈変粈涔堝尯鍒?
銆銆
澹版槑鏂規硶鐨勫瓨鍦ㄨ屼笉鍘誨疄鐜板畠鐨勭被琚彨鍋氭娊璞$被錛坅bstract class錛夛紝瀹冪敤浜庤鍒涘緩涓涓綋鐜版煇浜涘熀鏈涓虹殑綾伙紝騫朵負璇ョ被澹版槑鏂規硶錛屼絾涓嶈兘鍦ㄨ綾諱腑瀹炵幇璇ョ被鐨勬儏鍐點備笉鑳藉垱寤篴bstract 綾葷殑瀹炰緥銆傜劧鑰屽彲浠ュ垱寤轟竴涓彉閲忥紝鍏剁被鍨嬫槸涓涓娊璞$被錛屽茍璁╁畠鎸囧悜鍏蜂綋瀛愮被鐨勪竴涓疄渚嬨備笉鑳芥湁鎶借薄鏋勯犲嚱鏁版垨鎶借薄闈欐佹柟娉曘侫bstract 綾葷殑瀛愮被涓哄畠浠埗綾諱腑鐨勬墍鏈夋娊璞℃柟娉曟彁渚涘疄鐜幫紝鍚﹀垯瀹冧滑涔熸槸鎶借薄綾諱負銆傚彇鑰屼唬涔嬶紝鍦ㄥ瓙綾諱腑瀹炵幇璇ユ柟娉曘傜煡閬撳叾琛屼負鐨勫叾瀹冪被鍙互鍦ㄧ被涓疄鐜拌繖浜涙柟娉曘?br />
銆銆
鎺ュ彛錛坕nterface錛夋槸鎶借薄綾葷殑鍙樹綋銆傚湪鎺ュ彛涓紝鎵鏈夋柟娉曢兘鏄娊璞$殑銆傚緇ф壙鎬у彲閫氳繃瀹炵幇榪欐牱鐨勬帴鍙h岃幏寰椼傛帴鍙d腑鐨勬墍鏈夋柟娉曢兘鏄娊璞$殑錛屾病鏈変竴涓湁紼嬪簭浣撱傛帴鍙e彧鍙互瀹氫箟static final鎴愬憳鍙橀噺銆傛帴鍙g殑瀹炵幇涓庡瓙綾葷浉浼鹼紝闄や簡璇ュ疄鐜扮被涓嶈兘浠庢帴鍙e畾涔変腑緇ф壙琛屼負銆傚綋綾誨疄鐜扮壒孌婃帴鍙f椂錛屽畠瀹氫箟錛堝嵆灝嗙▼搴忎綋緇欎簣錛夋墍鏈夎繖縐嶆帴鍙g殑鏂規硶銆傜劧鍚庯紝瀹冨彲浠ュ湪瀹炵幇浜嗚鎺ュ彛鐨勭被鐨勪換浣曞璞′笂璋冪敤鎺ュ彛鐨勬柟娉曘傜敱浜庢湁鎶借薄綾伙紝瀹冨厑璁鎬嬌鐢ㄦ帴鍙e悕浣滀負寮曠敤鍙橀噺鐨勭被鍨嬨傞氬父鐨勫姩鎬佽仈緙栧皢鐢熸晥銆傚紩鐢ㄥ彲浠ヨ漿鎹㈠埌鎺ュ彛綾誨瀷鎴栦粠鎺ュ彛綾誨瀷杞崲錛宨nstanceof 榪愮畻絎﹀彲浠ョ敤鏉ュ喅瀹氭煇瀵硅薄鐨勭被鏄惁瀹炵幇浜嗘帴鍙c?br />
銆銆
絎簩鍗佷竴錛宎bstract鐨刴ethod鏄惁鍙悓鏃舵槸static,鏄惁鍙悓鏃舵槸native錛屾槸鍚﹀彲鍚屾椂鏄痵ynchronized?
銆銆
閮戒笉鑳?br />
銆銆
絎簩鍗佷簩錛屾帴鍙f槸鍚﹀彲緇ф壙鎺ュ彛? 鎶借薄綾繪槸鍚﹀彲瀹炵幇(implements)鎺ュ彛? 鎶借薄綾繪槸鍚﹀彲緇ф壙瀹炰綋綾?concrete class)?
銆銆
鎺ュ彛鍙互緇ф壙鎺ュ彛銆傛娊璞$被鍙互瀹炵幇(implements)鎺ュ彛錛屾娊璞$被鏄惁鍙戶鎵垮疄浣撶被錛屼絾鍓嶆彁鏄疄浣撶被蹇呴』鏈夋槑紜殑鏋勯犲嚱鏁般?br />
銆
絎簩鍗佷笁錛屽惎鍔ㄤ竴涓嚎紼嬫槸鐢╮un()榪樻槸start()?
銆銆
鍚姩涓涓嚎紼嬫槸璋冪敤start()鏂規硶錛屼嬌綰跨▼鎵浠h〃鐨勮櫄鎷熷鐞嗘満澶勪簬鍙繍琛岀姸鎬侊紝榪欐剰鍛崇潃瀹冨彲浠ョ敱JVM璋冨害騫舵墽琛屻傝繖騫朵笉鎰忓懗鐫綰跨▼灝變細绔嬪嵆榪愯銆俽un()鏂規硶鍙互浜х敓蹇呴』閫鍑虹殑鏍囧織鏉ュ仠姝竴涓嚎紼嬨?br />
銆銆
絎簩鍗佸洓錛屾瀯閫犲櫒Constructor鏄惁鍙override?
銆銆
鏋勯犲櫒Constructor涓嶈兘琚戶鎵匡紝鍥犳涓嶈兘閲嶅啓Overriding錛屼絾鍙互琚噸杞絆verloading銆?br />
銆銆
絎簩鍗佷簲錛屾槸鍚﹀彲浠ョ戶鎵縎tring綾?
銆銆
String綾繪槸final綾繪晠涓嶅彲浠ョ戶鎵褲?br />
銆銆
絎簩鍗佸叚錛屽綋涓涓嚎紼嬭繘鍏ヤ竴涓璞$殑涓涓猻ynchronized鏂規硶鍚庯紝鍏跺畠綰跨▼鏄惁鍙繘鍏ユ瀵硅薄鐨勫叾瀹冩柟娉?
銆銆
涓嶈兘錛屼竴涓璞$殑涓涓猻ynchronized鏂規硶鍙兘鐢變竴涓嚎紼嬭闂?br />
銆銆
絎簩鍗佷竷錛宼ry {}閲屾湁涓涓猺eturn璇彞錛岄偅涔堢揣璺熷湪榪欎釜try鍚庣殑finally {}閲岀殑code浼氫笉浼氳鎵ц錛屼粈涔堟椂鍊欒鎵ц錛屽湪return鍓嶈繕鏄悗?
銆銆
浼氭墽琛岋紝鍦╮eturn鍓嶆墽琛屻?br />
銆銆
浜屽崄鍏紝緙栫▼棰? 鐢ㄦ渶鏈夋晥鐜囩殑鏂規硶綆楀嚭2涔樹互8絳夋柤鍑?
銆銆
鏈塁鑳屾櫙鐨勭▼搴忓憳鐗瑰埆鍠滄闂繖縐嶉棶棰樸?
銆銆
絎簩鍗佷節錛屼袱涓璞″肩浉鍚?x.equals(y) == true)錛屼絾鍗村彲鏈変笉鍚岀殑hash code錛岃繖鍙ヨ瘽瀵逛笉瀵?
銆
涓嶅錛屾湁鐩稿悓鐨刪ash code銆?
銆銆
絎笁鍗侊紝褰撲竴涓璞¤褰撲綔鍙傛暟浼犻掑埌涓涓柟娉曞悗錛屾鏂規硶鍙敼鍙樿繖涓璞$殑灞炴э紝騫跺彲榪斿洖鍙樺寲鍚庣殑緇撴灉錛岄偅涔堣繖閲屽埌搴曟槸鍊間紶閫掕繕鏄紩鐢ㄤ紶閫?
銆銆
鏄間紶閫掋侸ava 緙栫▼璇█鍙敱鍊間紶閫掑弬鏁般傚綋涓涓璞″疄渚嬩綔涓轟竴涓弬鏁拌浼犻掑埌鏂規硶涓椂錛屽弬鏁扮殑鍊煎氨鏄璇ュ璞$殑寮曠敤銆傚璞$殑鍐呭鍙互鍦ㄨ璋冪敤鐨勬柟娉曚腑鏀瑰彉錛屼絾瀵硅薄鐨勫紩鐢ㄦ槸姘歌繙涓嶄細鏀瑰彉鐨勩?
銆銆
絎笁鍗佷竴錛宻wtich鏄惁鑳戒綔鐢ㄥ湪byte涓婏紝鏄惁鑳戒綔鐢ㄥ湪long涓婏紝鏄惁鑳戒綔鐢ㄥ湪String涓?
銆銆
switch錛坋xpr1錛変腑錛宔xpr1鏄竴涓暣鏁拌〃杈懼紡銆傚洜姝や紶閫掔粰 switch 鍜?case 璇彞鐨勫弬鏁板簲璇ユ槸 int銆?short銆?char 鎴栬?byte銆俵ong,string 閮戒笉鑳戒綔鐢ㄤ簬swtich銆?br />
銆銆
絎笁鍗佷簩錛岀紪紼嬮: 鍐欎竴涓猄ingleton鍑烘潵銆?br />
銆銆
Singleton妯″紡涓昏浣滅敤鏄繚璇佸湪Java搴旂敤紼嬪簭涓紝涓涓被Class鍙湁涓涓疄渚嬪瓨鍦ㄣ?br />
銆
涓鑸琒ingleton妯″紡閫氬父鏈夊嚑縐嶇褰㈠紡:
銆銆
絎竴縐嶅艦寮? 瀹氫箟涓涓被錛屽畠鐨勬瀯閫犲嚱鏁頒負private鐨勶紝瀹冩湁涓涓猻tatic鐨刾rivate鐨勮綾誨彉閲忥紝鍦ㄧ被鍒濆鍖栨椂瀹炰緥璇濓紝閫氳繃涓涓猵ublic鐨刧etInstance鏂規硶鑾峰彇瀵瑰畠鐨勫紩鐢?緇ц岃皟鐢ㄥ叾涓殑鏂規硶銆?
銆銆
public class Singleton {
銆銆
private Singleton(){}
銆銆
//鍦ㄨ嚜宸卞唴閮ㄥ畾涔夎嚜宸變竴涓疄渚嬶紝鏄笉鏄緢濂囨紵
銆銆
//娉ㄦ剰榪欐槸private 鍙緵鍐呴儴璋冪敤
銆銆
private static Singleton instance = new Singleton();
銆銆
//榪欓噷鎻愪緵浜嗕竴涓緵澶栭儴璁塊棶鏈琧lass鐨勯潤鎬佹柟娉曪紝鍙互鐩存帴璁塊棶銆銆
銆銆
public static Singleton getInstance() {
銆銆
return instance; 銆銆
銆銆
}
銆銆
}
銆銆
絎簩縐嶅艦寮?
銆銆
public class Singleton {
銆銆
private static Singleton instance = null;
銆銆
public static synchronized Singleton getInstance() {
銆銆
//榪欎釜鏂規硶姣斾笂闈㈡湁鎵鏀硅繘錛屼笉鐢ㄦ瘡嬈¢兘榪涜鐢熸垚瀵硅薄錛屽彧鏄涓嬈°
銆銆 銆 銆
銆//浣跨敤鏃剁敓鎴愬疄渚嬶紝鎻愰珮浜嗘晥鐜囷紒
銆銆
if (instance==null)
銆銆
instance錛漬ew Singleton();
銆銆
return instance; 銆銆}
銆銆
}
銆銆
鍏朵粬褰㈠紡:
銆銆
瀹氫箟涓涓被錛屽畠鐨勬瀯閫犲嚱鏁頒負private鐨勶紝鎵鏈夋柟娉曚負static鐨勩?
銆銆
涓鑸涓虹涓縐嶅艦寮忚鏇村姞瀹夊叏浜?
銆銆
Hashtable鍜孒ashMap
銆銆
Hashtable緇ф壙鑷狣ictionary綾伙紝鑰孒ashMap鏄疛ava1.2寮曡繘鐨凪ap interface鐨勪竴涓疄鐜?br />
銆銆
HashMap鍏佽灝唍ull浣滀負涓涓猠ntry鐨刱ey鎴栬卾alue錛岃孒ashtable涓嶅厑璁?
銆銆
榪樻湁灝辨槸錛孒ashMap鎶奌ashtable鐨刢ontains鏂規硶鍘繪帀浜嗭紝鏀規垚containsvalue鍜宑ontainsKey銆傚洜涓篶ontains鏂規硶瀹規槗璁╀漢寮曡搗璇В銆?br />
銆銆
鏈澶х殑涓嶅悓鏄紝Hashtable鐨勬柟娉曟槸Synchronize鐨勶紝鑰孒ashMap涓嶆槸錛屽湪
銆銆
澶氫釜綰跨▼璁塊棶Hashtable鏃訛紝涓嶉渶瑕佽嚜宸變負瀹冪殑鏂規硶瀹炵幇鍚屾錛岃孒ashMap
銆銆
灝卞繀欏諱負涔嬫彁渚涘鍚屾銆?
銆銆
Hashtable鍜孒ashMap閲囩敤鐨刪ash/rehash綆楁硶閮藉ぇ姒備竴鏍鳳紝鎵浠ユц兘涓嶄細鏈夊緢澶х殑宸紓銆?br />
]]>
銆奡leepless in Java銆?/strong>
涓嬭澆鍦板潃錛?/font>
http://www.shnenglu.com/Files/yunduan5158/SleeplessInJava.rar
聽
聽
]]>
1銆?abc"涓巒ew String("abc");
聽聽聽聽緇忓父浼氶棶鍒扮殑闈㈣瘯棰橈細String s = new String("abc");鍒涘緩浜嗗嚑涓猄tring Object?銆愬榪欓噷鍒涘緩浜嗗灝戝璞? 鍜屼竴閬撳皬灝忕殑闈㈣瘯棰?銆?br />
聽聽聽聽榪欎釜闂姣旇緝綆鍗曪紝娑夊強鐨勭煡璇嗙偣鍖呮嫭錛?br />
寮曠敤鍙橀噺涓庡璞$殑鍖哄埆錛?
瀛楃涓叉枃瀛?abc"鏄竴涓猄tring瀵硅薄錛?
鏂囧瓧姹燵pool of literal strings]鍜屽爢[heap]涓殑瀛楃涓插璞°?br />聽聽聽聽涓銆佸紩鐢ㄥ彉閲忎笌瀵硅薄錛氶櫎浜嗕竴浜涙棭鏈熺殑Java涔︾睄鍜岀幇鍦ㄧ殑鍨冨溇涔︾睄錛屼漢浠兘鍙互浠庝腑姣旇緝娓呮鍦板涔犲埌涓よ呯殑鍖哄埆銆侫 aa;璇彞澹版槑涓涓被A鐨勫紩鐢ㄥ彉閲廰a[鎴戝父甯哥О涔嬩負鍙ユ焺]錛岃屽璞′竴鑸氳繃new鍒涘緩銆傛墍浠ラ鐩腑s浠呬粎鏄竴涓紩鐢ㄥ彉閲忥紝瀹冧笉鏄璞°俒ref 鍙ユ焺銆佸紩鐢ㄤ笌瀵硅薄]
聽聽聽聽浜屻丣ava涓墍鏈夌殑瀛楃涓叉枃瀛梉瀛楃涓插父閲廬閮芥槸涓涓猄tring鐨勫璞°傛湁浜篬鐗瑰埆鏄疌紼嬪簭鍛榏鍦ㄤ竴浜涘満鍚堝枩嬈㈡妸瀛楃涓?褰撲綔/鐪嬫垚"瀛楃鏁扮粍錛岃繖涔熸病鏈夊姙娉曪紝鍥犱負瀛楃涓蹭笌瀛楃鏁扮粍瀛樺湪涓浜涘唴鍦ㄧ殑鑱旂郴銆備簨瀹炰笂錛屽畠涓庡瓧絎︽暟緇勬槸涓ょ瀹屽叏涓嶅悓鐨勫璞°?br />
聽聽聽聽聽聽聽聽System.out.println("Hello".length());
聽聽聽聽聽聽聽聽char[] cc={'H','i'};
聽聽聽聽聽聽聽聽System.out.println(cc.length);
聽聽聽聽涓夈佸瓧絎︿覆瀵硅薄鐨勫垱寤?鐢變簬瀛楃涓插璞$殑澶ч噺浣跨敤[瀹冩槸涓涓璞★紝涓鑸岃█瀵硅薄鎬繪槸鍦╤eap鍒嗛厤鍐呭瓨]錛孞ava涓負浜嗚妭鐪佸唴瀛樼┖闂村拰榪愯鏃墮棿[濡傛瘮杈冨瓧絎︿覆鏃訛紝==姣攅quals()蹇玗錛屽湪緙栬瘧闃舵灝辨妸鎵鏈夌殑瀛楃涓叉枃瀛楁斁鍒頒竴涓枃瀛楁睜[pool of literal strings]涓紝鑰岃繍琛屾椂鏂囧瓧姹犳垚涓哄父閲忔睜鐨勪竴閮ㄥ垎銆傛枃瀛楁睜鐨勫ソ澶勶紝灝辨槸璇ユ睜涓墍鏈夌浉鍚岀殑瀛楃涓插父閲忚鍚堝茍錛屽彧鍗犵敤涓涓┖闂淬傛垜浠煡閬擄紝瀵逛袱涓紩鐢ㄥ彉閲忥紝浣跨敤==鍒ゆ柇瀹冧滑鐨勫糩寮曠敤]鏄惁鐩哥瓑錛屽嵆鎸囧悜鍚屼竴涓璞★細
String s1 = "abc" ;
String s2 = "abc" ;
if( s1 == s2 )
聽聽聽聽System.out.println("s1,s2 refer to the same object");
else聽聽聽聽 System.out.println("trouble");
聽聽聽聽榪欓噷鐨勮緭鍑烘樉紺猴紝涓や釜瀛楃涓叉枃瀛椾繚瀛樹負涓涓璞°傚氨鏄錛屼笂闈㈢殑浠g爜鍙湪pool涓垱寤轟簡涓涓猄tring瀵硅薄銆?br />
聽聽聽聽鐜板湪鐪婼tring s = new String("abc");璇彞錛岃繖閲?abc"鏈韓灝辨槸pool涓殑涓涓璞★紝鑰屽湪榪愯鏃舵墽琛宯ew String()鏃訛紝灝唒ool涓殑瀵硅薄澶嶅埗涓浠芥斁鍒癶eap涓紝騫朵笖鎶奾eap涓殑榪欎釜瀵硅薄鐨勫紩鐢ㄤ氦緇檚鎸佹湁銆俹k錛岃繖鏉¤鍙ュ氨鍒涘緩浜?涓猄tring瀵硅薄銆?br />
String s1 = new String("abc") ;
String s2 = new String("abc") ;
if( s1 == s2 ){ //涓嶄細鎵ц鐨勮鍙
聽聽聽聽榪欐椂鐢?=鍒ゆ柇灝卞彲鐭ワ紝铏界劧涓や釜瀵硅薄鐨?鍐呭"鐩稿悓[equals()鍒ゆ柇]錛屼絾涓や釜寮曠敤鍙橀噺鎵鎸佹湁鐨勫紩鐢ㄤ笉鍚岋紝
聽聽聽聽BTW錛氫笂闈㈢殑浠g爜鍒涘緩浜嗗嚑涓猄tring Object? [涓変釜錛宲ool涓竴涓紝heap涓?涓俔
聽聽聽聽[Java2 璁よ瘉鑰冭瘯瀛︿範鎸囧崡 (絎?鐗?( 鑻辨枃鐗?p197-199鏈夊浘瑙c俔
2銆佸瓧絎︿覆鐨?榪愮畻鍜屽瓧絎︿覆杞崲
聽聽聽聽瀛楃涓茶漿鎹㈠拰涓叉帴鏄緢鍩虹鐨勫唴瀹癸紝鍥犳鎴戜互涓鴻繖涓棶棰樼畝鐩村氨鏄佸垎棰樸備簨瀹炰笂錛屾垜鑷繁灝辯瓟閿欎簡銆?br />
String str = new String("jf"); // jf鏄帴鍒?br />str = 1+2+str+3+4;
涓鍏卞垱寤轟簡澶氬皯String鐨勫璞★紵[鎴戝紑濮嬬殑絳旀錛?涓俲f銆乶ew銆?jf銆?jf3銆?jf34]
聽聽聽聽棣栧厛鐪婮LS鐨勬湁鍏寵榪幫細
聽聽聽聽涓銆佸瓧絎︿覆杞崲鐨勭幆澧僛JLS 5.4 String Conversion]
聽聽聽聽瀛楃涓茶漿鎹㈢幆澧冧粎浠呮寚浣跨敤鍙屽厓鐨?榪愮畻絎︾殑鎯呭喌錛屽叾涓竴涓搷浣滄暟鏄竴涓猄tring瀵硅薄銆傚湪榪欎竴鐗瑰畾鎯呭艦涓嬶紝鍙︿竴鎿嶄綔鏁拌漿鎹㈡垚String錛岃〃杈懼紡鐨勭粨鏋滄槸榪欎袱涓猄tring鐨勪覆鎺ャ?br />
聽聽聽聽浜屻佷覆鎺ヨ繍綆楃[JLS 15.18.1 String Concatenation Operator + ]
聽聽聽聽濡傛灉涓涓搷浣滄暟/琛ㄨ揪寮忔槸String綾誨瀷錛屽垯鍙︿竴涓搷浣滄暟鍦ㄨ繍琛屾椂杞崲鎴愪竴涓猄tring瀵硅薄錛屽茍涓よ呬覆鎺ャ傛鏃訛紝浠諱綍綾誨瀷閮藉彲浠ヨ漿鎹㈡垚String銆俒榪欓噷錛屾垜婕忔帀浜?3"鍜?4"]
濡傛灉鏄熀鏈暟鎹被鍨嬶紝鍒欏鍚岄鍏堣漿鎹㈡垚鍏跺寘瑁呯被瀵硅薄錛屽int x瑙嗕負杞崲鎴怚nteger(x)銆?
鐜板湪灝卞叏閮ㄧ粺涓鍒板紩鐢ㄧ被鍨嬪悜String鐨勮漿鎹簡銆傝繖縐嶈漿鎹㈠鍚孾as if]璋冪敤璇ュ璞$殑鏃犲弬鏁皌oString鏂規硶銆俒濡傛灉鏄痭ull鍒欒漿鎹㈡垚"null"]銆傚洜涓簍oString鏂規硶鍦∣bject涓畾涔夛紝鏁呮墍鏈夌殑綾婚兘鏈夎鏂規硶錛岃屼笖Boolean, Character, Integer, Long, Float, Double, and String鏀瑰啓浜嗚鏂規硶銆?
鍏充簬+鏄覆鎺ヨ繕鏄姞娉曪紝鐢辨搷浣滄暟鍐沖畾銆?+2+str+3+4 灝卞緢瀹規槗鐭ラ亾鏄?3jf34"銆俒BTW :鍦↗LS鐨?5.18.1.3涓婦鐨勪竴涓猨ocular little example錛岀湡鐨勫緢鏃犺叮銆俔
聽聽聽聽涓嬮潰鐨勪緥瀛愭祴璇曚簡鏀瑰啓toString鏂規硶鐨勬儏鍐?銆?br />
class A{
聽聽聽聽int i = 10;
聽聽聽聽public static void main(String []args){
聽聽聽聽聽聽聽聽String str = new String("jf");
聽聽聽聽聽聽聽聽str += new A();
聽聽聽聽聽聽聽聽System.out.print(str);
聽聽聽聽}
聽聽聽聽public String toString(){
聽聽聽聽聽聽聽聽return " a.i ="+i+"\n";
聽聽聽聽}
}
涓夈佸瓧絎︿覆杞崲鐨勪紭鍖?br />
鎸夌収涓婅堪璇存硶錛宻tr = 1+2+str+3+4;璇彞浼間箮搴旇灝卞簲璇ョ敓鎴?涓猄tring瀵硅薄錛?br />
1+2 錛?錛宼hen 3鈫捍nteger(3)鈫?3" in pool? [鍋囪濡傛]
"3"+str(in heap) = "3jf"聽聽聽聽 (in heap)
"3jf" +3 ,first 3鈫捍nteger(3)鈫?3" in pool? [鍒欎笉鍒涘緩] then "3jf3"
"3jf3"+4 create "4"聽聽in pool
then "3jf34"
聽聽聽聽榪欓噷鎴戝茍涓嶆竻妤?銆?杞崲鎴愬瓧絎︿覆鍚庢槸鍚﹀湪姹犱腑錛屾墍浠ヤ笂榪扮粨鏋滀粛鐒舵槸鐚滄祴銆?br />
聽聽聽聽涓轟簡鍑忓皯鍒涘緩涓棿榪囨浮鎬х殑瀛楃涓插璞★紝鎻愰珮鍙嶅榪涜涓叉帴榪愮畻鏃剁殑鎬ц兘錛宎 Java compiler鍙互浣跨敤StringBuffer鎴栬呯被浼肩殑鎶鏈紝鎴栬呮妸杞崲涓庝覆鎺ュ悎騫舵垚涓姝ャ備緥濡傦細瀵逛簬 a + b + c 錛孞ava緙栬瘧鍣ㄥ氨鍙互灝嗗畠瑙嗕負[as if]
聽聽聽聽new StringBuffer().append(a).append(b).append(c).toString();
聽聽聽聽娉ㄦ剰錛屽浜庡熀鏈被鍨嬪拰寮曠敤綾誨瀷錛屽湪append(a)榪囩▼涓粛鐒惰鍏堝皢鍙傛暟杞崲錛屼粠榪欎釜瑙傜偣鐪嬶紝str = 1+2+str+3+4;鍒涘緩鐨勫瓧絎︿覆鍙兘鏄?3"銆?4"鍜?3jf34"[浠ュ強涓涓猄tringBuffer瀵硅薄]銆?br />
聽聽聽聽鐜板湪鎴戜粛鐒朵笉鐭ラ亾鎬庝箞鍥炵瓟str = 1+2+str+3+4;鍒涘緩浜嗗灝慡tring鐨勫璞★紝銆傛垨璁革紝榪欎釜闂涓嶉渶瑕佽繃浜庣爺絀訛紝鑷沖皯SCJP涓嶄細鑰冨畠銆?br />
3銆佽繖鍙堜笉鍚岋細str = "3"+"jf"+"3"+"4";
聽聽聽聽濡傛灉鏄竴涓畬鍏ㄧ敱瀛楃涓叉枃瀛楃粍鎴愮殑琛ㄨ揪寮忥紝鍒欏湪緙栬瘧鏃訛紝宸茬粡琚紭鍖栬屼笉浼氬湪榪愯鏃跺垱寤轟腑闂村瓧絎︿覆銆傛祴璇曚唬鐮佸涓嬶細
String str1 ="3jf34";
聽聽聽聽聽聽聽聽String str2 ="3"+"jf"+"3"+"4";
聽聽聽聽聽聽聽聽if(str1 == str2) {
聽聽聽聽聽聽聽聽聽聽聽聽System.out.println("str1 == str2");
聽聽聽聽聽聽聽聽}else {
聽聽聽聽聽聽聽聽聽聽聽聽System.out.println("think again");
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽if(str2.equals(str1))
聽聽聽聽聽聽聽聽聽聽聽聽System.out.println("yet str2.equals(str1)");
聽聽聽聽鍙錛宻tr1涓巗tr2鎸囧悜鍚屼竴涓璞★紝榪欎釜瀵硅薄鍦╬ool涓傛墍鏈夐伒寰狫ava Language Spec鐨勭紪璇戝櫒閮藉繀欏誨湪緙栬瘧鏃跺constant expressions 榪涜綆鍖栥侸LS瑙勫畾錛歋trings computed by constant expressions (ý15.28) are computed at compile time and then treated as if they were literals.
聽聽聽聽瀵逛簬String str2 ="3"+"jf"+"3"+"4";鎴戜滑璇翠粎浠呭垱寤轟竴涓璞°傛敞鎰忥紝鈥滃垱寤哄灝戝璞♀濈殑璁ㄨ鏄榪愯鏃跺垱寤哄灝戝璞°?br />
聽聽聽聽BTW錛氱紪璇戞椂浼樺寲
聽聽聽聽String x = "aaa " + "bbb ";
//榪欎釜鍦版柟鎴戣嚜宸辮繘琛屼簡緙栬瘧錛屼笉榪囧拰浠栫殑緇撹涓嶄竴鏍鳳紝濂藉儚褰撶敤x+="ddd"鐨勬椂鍊欏拰鐩存帴鐨剎="aaa"+"bbb"+"ddd" 涓嶅悓錛屼絾鏄叿浣撲負浠涔堟垜涔熶笉娓呮錛屾鍦ㄧ爺絀朵腑銆傘傘?/font>
聽聽聽聽if (false) {
聽聽聽聽聽聽聽聽x = x + "ccc ";
聽聽聽聽}
聽聽聽聽x +=聽聽"ddd ";
聽聽聽聽絳変環浜庯細
聽聽聽聽String x = "aaa bbb ";
聽聽聽聽x = x + "ddd ";
4銆佷笉鍙樼被
聽聽聽聽String瀵硅薄鏄笉鍙敼鍙樼殑(immutable)銆傛湁浜哄str = 1+2+str+3+4;璇彞鎻愬嚭鐤戦棶,鎬庝箞str鐨勫唴瀹瑰彲浠ユ敼鍙橈紵鍏跺疄浠嶇劧鏄洜涓轟笉娓呮錛氬紩鐢ㄥ彉閲忎笌瀵硅薄鐨勫尯鍒俿tr浠呬粎鏄紩鐢ㄥ彉閲忥紝瀹冪殑鍊尖斺斿畠鎸佹湁鐨勫紩鐢ㄥ彲浠ユ敼鍙樸備綘涓嶅仠鍦板垱寤烘柊瀵硅薄錛屾垜灝變笉鏂湴鏀瑰彉鎸囧悜銆俒鍙傝僒IJ鐨凴ead-only classes銆俔
聽聽聽聽涓嶅彉綾葷殑鍏抽敭鏄紝瀵逛簬瀵硅薄鐨勬墍鏈夋搷浣滈兘涓嶅彲鑳芥敼鍙樺師鏉ョ殑瀵硅薄[鍙闇瑕侊紝灝辮繑鍥炰竴涓敼鍙樹簡鐨勬柊瀵硅薄]銆傝繖灝變繚璇佷簡瀵硅薄涓嶅彲鏀瑰彉銆備負浠涔堣灝嗕竴涓被璁捐鎴愪笉鍙樼被錛熸湁涓涓狾OD璁捐鐨勫師鍒欙細Law of Demeter銆傚叾騫夸箟瑙h鏄細
聽聽聽聽浣跨敤涓嶅彉綾匯傚彧瑕佹湁鍙兘錛岀被搴斿綋璁捐涓轟笉鍙樼被銆?br />
]]>
Interface ,緇欏鐣岀殑鎺ュ彛,鎸夌収瑙勫畾鍔炰簨錛?br />Abstract聽聽,鍐呴儴緇ф壙鍏崇郴錛?br />
interface 灝辨槸涓緇勬搷浣滅殑闆嗗悎,瀹冨畾涔変簡涓涓涓洪泦浣嗕笉浣滀換浣曞叿浣撶殑瀹炵幇,榪欐牱鐨勮瘽,鍏蜂綋鐨勬搷浣?閮藉彲浠ユ斁鍦ㄥ疄鐜扮被涓幓,
聽聽聽聽聽聽聽聽聽聽浣撶幇璁捐涓庡疄鐜板垎紱葷殑璁捐鎬濇兂銆?br />
鍦ㄩ潰鍚戝璞$殑姒傚康涓紝鎵鏈夌殑瀵硅薄閮芥槸閫氳繃綾繪潵鎻忕粯錛屽鏋滀竴涓被涓病鏈夊寘鍚凍澶熺殑淇℃伅鏉ユ弿緇樹竴涓叿浣撶殑瀵硅薄錛岃繖鏍風殑綾誨氨鏄娊璞$被
鎶借薄姒傚康鍦ㄩ棶棰橀鍩熸病鏈夊搴旂殑鍏蜂綋姒傚康錛屾墍浠ョ敤浠ヨ〃寰佹娊璞℃蹇電殑鎶借薄綾繪槸涓嶈兘澶熷疄渚嬪寲鐨勩?br />
=====================================================================================================================
浣跨敤abstract class鐨勬柟寮忓畾涔塂emo鎶借薄綾葷殑鏂瑰紡濡備笅錛?br />
abstract class Demo {
abstract void method1();
abstract void method2();
鈥?br />}
浣跨敤interface鐨勬柟寮忓畾涔塂emo鎶借薄綾葷殑鏂瑰紡濡備笅錛?br />
interface Demo {
void method1();
void method2();
鈥?br />}
====================================================================================================================
浠庣紪紼嬪眰闈㈢湅abstract class鍜宨nterface
abstract class鍦↗ava璇█涓〃紺虹殑鏄竴縐嶇戶鎵垮叧緋伙紝涓涓被鍙兘浣跨敤涓嬈$戶鎵垮叧緋?br />涓涓被鍗村彲浠ュ疄鐜板涓猧nterface
鍦╝bstract class鐨勫畾涔変腑錛屾垜浠彲浠ヨ祴浜堟柟娉曠殑榛樿琛屼負
鍦╥nterface鐨勫畾涔変腑錛屾柟娉曞嵈涓嶈兘鎷ユ湁榛樿琛屼負
======================================================================================================================
渚嬪瑕佽璁′竴涓艦鐘剁被MShape錛屼粠姝ょ被鍙互媧劇敓 鏂瑰艦銆佸渾褰€佷笁瑙掑艦絳夊瓙綾匯傛垜浠氨鍙互灝哅Shape榪欎釜鐖剁被璁捐涓篴bstract綾匯?br />
姣斿錛屽瓙綾婚兘鏈?color 灞炴э紝鍥犳鍙互鎶?color 榪欎釜鏁版嵁鎴愬憳錛屼互鍙婄粰 color 璧嬪肩殑method鍧囪璁″湪鐖剁被涓紝
榪欐牱灝變笉鐢ㄥ湪姣忎釜瀛愮被涓璁$浉鍚岀殑浠g爜鏉ュ鐞?color 榪欎釜灞炴с?br />鑰屽鏋滄兂璁$畻鍑犱綍褰㈢姸鐨勯潰縐紝鐢變簬鍚勪釜鍑犱綍褰㈢姸鐨勯潰縐綆楁柟寮忛兘涓嶇浉鍚岋紝鎵浠ユ妸璁$畻闈㈢Н鐨刴ethod鐨勫鐞嗘斁鍦ㄧ埗綾諱腑灝變笉鍚堥傦紝
浣嗙敱浜庢瘡涓嚑浣曞艦鐘墮兘闇瑕佺敤鍒拌繖涓猰ethod錛屽洜姝ゅ彲浠ュ湪鐖剁被涓彧澹版槑璁$畻闈㈢Н鐨刴ethod "area()"錛岃屾妸鍏蜂綋鐨勫鐞嗘斁鍦ㄥ瓙綾諱腑瀹氫箟銆?br />鍗蟲妸area()璁捐涓烘娊璞$被銆?br />
浠ヤ笅鏄▼搴忎唬鐮侊細
//abstract綾?MShape聽聽聽聽聽聽
abstract class MShape
{
聽聽聽聽聽聽聽聽protected String color;聽聽 //鏁版嵁鎴愬憳
聽聽聽聽聽聽聽聽public void setColor(String mcolor)聽聽 //涓鑸柟娉曪紝瀹氫箟浜嗗叿浣撶殑澶勭悊
聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽 color=mcolor;
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽abstract void area();聽聽 //鎶借薄鏂規硶錛屾病鏈夊畾涔夊叿浣撶殑澶勭悊
}
//鏂瑰艦綾?br />
class RectShape extends MShape
{聽聽聽聽聽聽
聽聽聽聽聽聽聽聽int width,height,rectarea;聽聽聽聽
聽聽聽聽聽聽聽聽public RectShape(int w,int h)
聽聽聽聽聽聽聽聽{聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 width=w;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 height=h;聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽public void area()聽聽//璁$畻闈㈢Н
聽聽聽聽聽聽聽聽{聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽rectarea=width*height;
聽聽聽聽聽聽聽聽}
}
//浣跨敤
public class myapp
{
聽聽聽聽聽聽聽聽public static void main(String args[])
聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽RectShape rect=new RectShape(3,6);
聽聽聽聽聽聽聽聽聽聽rect.setColor("Red");
聽聽聽聽聽聽聽聽聽聽rect.area();
聽聽聽聽聽聽聽聽聽聽System.out.print("color="+rect.color+", area="+rect.rectarea);
聽聽聽聽聽聽聽聽}
}
鐢辨鍙錛屽湪abstract涓笉浠呭彲浠ュ畾涔変竴鑸殑鏂規硶錛堝嵆鍙互榪涜鍏蜂綋澶勭悊鐨勬柟娉曪級錛岃繕鍙互璞nterface涓鏍峰畾涔夋娊璞℃柟娉曘?br />鑰屽湪interface涓彧鑳藉畾涔夋娊璞℃柟娉曘?/font>