40銆佹瀯閫犲櫒Constructor鏄惁鍙override?鏋勯€犲櫒Constructor涓嶈兘琚戶鎵匡紝鍥犳涓嶈兘閲嶅啓Overriding錛屼絾鍙互琚噸杞絆verloading銆?/font>
41銆佹槸鍚﹀彲浠ョ戶鎵縎tring綾?String綾繪槸final綾繪晠涓嶅彲浠ョ戶鎵褲€?/font>
42銆乻wtich鏄惁鑳戒綔鐢ㄥ湪byte涓婏紝鏄惁鑳戒綔鐢ㄥ湪long涓婏紝鏄惁鑳戒綔鐢ㄥ湪String涓?switch錛坋xpr1錛変腑錛宔xpr1鏄竴涓暣鏁拌〃杈懼紡銆傚洜姝や紶閫掔粰 switch 鍜?case 璇彞鐨勫弬鏁板簲璇ユ槸 int銆?short銆?char 鎴栬€?byte銆俵ong,string 閮戒笉鑳戒綔鐢ㄤ簬swtich銆?/font>
43銆乼ry {}閲屾湁涓€涓猺eturn璇彞錛岄偅涔堢揣璺熷湪榪欎釜try鍚庣殑finally {}閲岀殑code浼氫笉浼氳鎵ц錛屼粈涔堟椂鍊欒鎵ц錛屽湪return鍓嶈繕鏄悗?浼氭墽琛岋紝鍦╮eturn鍓嶆墽琛屻€?/font>
44銆佺紪紼嬮: 鐢ㄦ渶鏈夋晥鐜囩殑鏂規硶綆楀嚭2涔樹互8絳夋柤鍑? 2 << 3
45銆佷袱涓璞″€肩浉鍚?x.equals(y) == true)錛屼絾鍗村彲鏈変笉鍚岀殑hash code錛岃繖鍙ヨ瘽瀵逛笉瀵?涓嶅錛屾湁鐩稿悓鐨刪ash code銆?/font>
46銆佸綋涓€涓璞¤褰撲綔鍙傛暟浼犻€掑埌涓€涓柟娉曞悗錛屾鏂規硶鍙敼鍙樿繖涓璞$殑灞炴€э紝騫跺彲榪斿洖鍙樺寲鍚庣殑緇撴灉錛岄偅涔堣繖閲屽埌搴曟槸鍊間紶閫掕繕鏄紩鐢ㄤ紶閫? 鏄€間紶閫掋€侸ava 緙栫▼璇█鍙湁鍊間紶閫掑弬鏁般€傚綋涓€涓璞″疄渚嬩綔涓轟竴涓弬鏁拌浼犻€掑埌鏂規硶涓椂錛屽弬鏁扮殑鍊煎氨鏄璇ュ璞$殑寮曠敤銆傚璞$殑鍐呭鍙互鍦ㄨ璋冪敤鐨勬柟娉曚腑鏀瑰彉錛屼絾瀵硅薄鐨勫紩鐢ㄦ槸姘歌繙涓嶄細鏀瑰彉鐨勩€?/font>
47銆佸綋涓€涓嚎紼嬭繘鍏ヤ竴涓璞$殑涓€涓猻ynchronized鏂規硶鍚庯紝鍏跺畠綰跨▼鏄惁鍙繘鍏ユ瀵硅薄鐨勫叾瀹冩柟娉?
涓嶈兘錛屼竴涓璞$殑涓€涓猻ynchronized鏂規硶鍙兘鐢變竴涓嚎紼嬭闂€?/font>
48銆佺紪紼嬮: 鍐欎竴涓猄ingleton鍑烘潵銆?br />Singleton妯″紡涓昏浣滅敤鏄繚璇佸湪Java搴旂敤紼嬪簭涓紝涓€涓被Class鍙湁涓€涓疄渚嬪瓨鍦ㄣ€備竴鑸琒ingleton妯″紡閫氬父鏈夊嚑縐嶇褰㈠紡:絎竴縐嶅艦寮? 瀹氫箟涓€涓被錛屽畠鐨勬瀯閫犲嚱鏁頒負private鐨勶紝瀹冩湁涓€涓猻tatic鐨刾rivate鐨勮綾誨彉閲忥紝鍦ㄧ被鍒濆鍖栨椂瀹炰緥璇濓紝閫氳繃涓€涓猵ublic鐨刧etInstance鏂規硶鑾峰彇瀵瑰畠鐨勫紩鐢?緇ц€岃皟鐢ㄥ叾涓殑鏂規硶銆俻ublic class Singleton {private Singleton(){} private static Singleton instance = new Singleton();聽聽聽聽 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鐨勩€備竴鑸涓虹涓€縐嶅艦寮忚鏇村姞瀹夊叏浜?/font>
49銆丣ava鐨勬帴鍙e拰C++鐨勮櫄綾葷殑鐩稿悓鍜屼笉鍚屽銆?br />鐢變簬Java涓嶆敮鎸佸緇ф壙錛岃€屾湁鍙兘鏌愪釜綾繪垨瀵硅薄瑕佷嬌鐢ㄥ垎鍒湪鍑犱釜綾繪垨瀵硅薄閲岄潰鐨勬柟娉曟垨灞炴€э紝鐜版湁鐨勫崟緇ф壙鏈哄埗灝變笉鑳芥弧瓚寵姹傘€備笌緇ф壙鐩告瘮錛屾帴鍙f湁鏇撮珮鐨勭伒媧繪€э紝鍥犱負鎺ュ彛涓病鏈変換浣曞疄鐜頒唬鐮併€傚綋涓€涓被瀹炵幇浜嗘帴鍙d互鍚庯紝璇ョ被瑕佸疄鐜版帴鍙i噷闈㈡墍鏈夌殑鏂規硶鍜屽睘鎬э紝騫朵笖鎺ュ彛閲岄潰鐨勫睘鎬у湪榛樿鐘舵€佷笅闈㈤兘鏄痯ublic static,鎵€鏈夋柟娉曢粯璁ゆ儏鍐典笅鏄痯ublic.涓€涓被鍙互瀹炵幇澶氫釜鎺ュ彛銆?/font>
50銆丣ava涓殑寮傚父澶勭悊鏈哄埗鐨勭畝鍗曞師鐞嗗拰搴旂敤銆?br />褰揓AVA紼嬪簭榪濆弽浜咼AVA鐨勮涔夎鍒欐椂錛孞AVA铏氭嫙鏈哄氨浼氬皢鍙戠敓鐨勯敊璇〃紺轟負涓€涓紓甯搞€傝繚鍙嶈涔夎鍒欏寘鎷?縐嶆儏鍐點€備竴縐嶆槸JAVA綾誨簱鍐呯疆鐨勮涔夋鏌ャ€備緥濡傛暟緇勪笅鏍囪秺鐣?浼氬紩鍙慖ndexOutOfBoundsException;璁塊棶null鐨勫璞℃椂浼氬紩鍙慛ullPointerException銆傚彟涓€縐嶆儏鍐靛氨鏄疛AVA鍏佽紼嬪簭鍛樻墿灞曡繖縐嶈涔夋鏌ワ紝紼嬪簭鍛樺彲浠ュ垱寤鴻嚜宸辯殑寮傚父錛屽茍鑷敱閫夋嫨鍦ㄤ綍鏃剁敤throw鍏抽敭瀛楀紩鍙戝紓甯搞€傛墍鏈夌殑寮傚父閮芥槸java.lang.Thowable鐨勫瓙綾匯€?/font>
51銆佸瀮鍦懼洖鏀剁殑浼樼偣鍜屽師鐞嗐€傚茍鑰冭檻2縐嶅洖鏀舵満鍒躲€?br />Java璇█涓竴涓樉钁楃殑鐗圭偣灝辨槸寮曞叆浜嗗瀮鍦懼洖鏀舵満鍒訛紝浣縞++紼嬪簭鍛樻渶澶寸柤鐨勫唴瀛樼鐞嗙殑闂榪庡垉鑰岃В錛屽畠浣垮緱Java紼嬪簭鍛樺湪緙栧啓紼嬪簭鐨勬椂鍊欎笉鍐嶉渶瑕佽€冭檻鍐呭瓨綆$悊銆傜敱浜庢湁涓瀮鍦懼洖鏀舵満鍒訛紝Java涓殑瀵硅薄涓嶅啀鏈夆€滀綔鐢ㄥ煙鈥濈殑姒傚康錛屽彧鏈夊璞$殑寮曠敤鎵嶆湁鈥滀綔鐢ㄥ煙鈥濄€傚瀮鍦懼洖鏀跺彲浠ユ湁鏁堢殑闃叉鍐呭瓨娉勯湶錛屾湁鏁堢殑浣跨敤鍙互浣跨敤鐨勫唴瀛樸€傚瀮鍦懼洖鏀跺櫒閫氬父鏄綔涓轟竴涓崟鐙殑浣庣駭鍒殑綰跨▼榪愯錛屼笉鍙鐭ョ殑鎯呭喌涓嬪鍐呭瓨鍫嗕腑宸茬粡姝諱骸鐨勬垨鑰呴暱鏃墮棿娌℃湁浣跨敤鐨勫璞¤繘琛屾竻妤氬拰鍥炴敹錛岀▼搴忓憳涓嶈兘瀹炴椂鐨勮皟鐢ㄥ瀮鍦懼洖鏀跺櫒瀵規煇涓璞℃垨鎵€鏈夊璞¤繘琛屽瀮鍦懼洖鏀躲€傚洖鏀舵満鍒舵湁鍒嗕唬澶嶅埗鍨冨溇鍥炴敹鍜屾爣璁板瀮鍦懼洖鏀訛紝澧為噺鍨冨溇鍥炴敹
52銆佽璇村嚭浣犳墍鐭ラ亾鐨勭嚎紼嬪悓姝ョ殑鏂規硶銆?br />wait():浣夸竴涓嚎紼嬪浜庣瓑寰呯姸鎬侊紝騫朵笖閲婃斁鎵€鎸佹湁鐨勫璞$殑lock銆俿leep():浣夸竴涓鍦ㄨ繍琛岀殑綰跨▼澶勪簬鐫$湢鐘舵€侊紝鏄竴涓潤鎬佹柟娉曪紝璋冪敤姝ゆ柟娉曡鎹曟崏InterruptedException寮傚父銆俷otify():鍞ら啋涓€涓浜庣瓑寰呯姸鎬佺殑綰跨▼錛屾敞鎰忕殑鏄湪璋冪敤姝ゆ柟娉曠殑鏃跺€欙紝騫朵笉鑳界‘鍒囩殑鍞ら啋鏌愪竴涓瓑寰呯姸鎬佺殑綰跨▼錛岃€屾槸鐢盝VM紜畾鍞ら啋鍝釜綰跨▼錛岃€屼笖涓嶆槸鎸変紭鍏堢駭銆侫llnotity():鍞ら啋鎵€鏈夊鍏ョ瓑寰呯姸鎬佺殑綰跨▼錛屾敞鎰忓茍涓嶆槸緇欐墍鏈夊敜閱掔嚎紼嬩竴涓璞$殑閿侊紝鑰屾槸璁╁畠浠珵浜夈€?/font>
53銆佷綘鎵€鐭ラ亾鐨勯泦鍚堢被閮芥湁鍝簺錛熶富瑕佹柟娉曪紵鏈€甯哥敤鐨勯泦鍚堢被鏄?List 鍜?Map銆?List 鐨勫叿浣撳疄鐜板寘鎷?ArrayList 鍜?Vector錛屽畠浠槸鍙彉澶у皬鐨勫垪琛紝姣旇緝閫傚悎鏋勫緩銆佸瓨鍌ㄥ拰鎿嶄綔浠諱綍綾誨瀷瀵硅薄鐨勫厓绱犲垪琛ㄣ€?List 閫傜敤浜庢寜鏁板€肩儲寮曡闂厓绱犵殑鎯呭艦銆?Map 鎻愪緵浜嗕竴涓洿閫氱敤鐨勫厓绱犲瓨鍌ㄦ柟娉曘€?Map 闆嗗悎綾葷敤浜庡瓨鍌ㄥ厓绱犲錛堢О浣溾€滈敭鈥濆拰鈥滃€尖€濓級錛屽叾涓瘡涓敭鏄犲皠鍒頒竴涓€箋€?/font>
54銆佹弿榪頒竴涓婮VM鍔犺澆class鏂囦歡鐨勫師鐞嗘満鍒?JVM涓被鐨勮杞芥槸鐢盋lassLoader鍜屽畠鐨勫瓙綾繪潵瀹炵幇鐨?Java ClassLoader 鏄竴涓噸瑕佺殑Java榪愯鏃剁郴緇熺粍浠躲€傚畠璐熻矗鍦ㄨ繍琛屾椂鏌ユ壘鍜岃鍏ョ被鏂囦歡鐨勭被銆?/font>
55銆乧har鍨嬪彉閲忎腑鑳戒笉鑳藉瓨璐竴涓腑鏂囨眽瀛?涓轟粈涔?
鑳藉瀹氫箟鎴愪負涓€涓腑鏂囩殑錛屽洜涓簀ava涓互unicode緙栫爜錛屼竴涓猚har鍗?6涓瓧鑺傦紝鎵€浠ユ斁涓€涓腑鏂囨槸娌¢棶棰樼殑
56銆佸綰跨▼鏈夊嚑縐嶅疄鐜版柟娉?閮芥槸浠€涔?鍚屾鏈夊嚑縐嶅疄鐜版柟娉?閮芥槸浠€涔?
澶氱嚎紼嬫湁涓ょ瀹炵幇鏂規硶錛屽垎鍒槸緇ф壙Thread綾諱笌瀹炵幇Runnable鎺ュ彛 ,鍚屾鐨勫疄鐜版柟闈㈡湁涓ょ錛屽垎鍒槸synchronized,wait涓巒otify
57銆丣SP鐨勫唴緗璞″強鏂規硶銆?br />request琛ㄧずHttpServletRequest瀵硅薄銆傚畠鍖呭惈浜嗘湁鍏蟲祻瑙堝櫒璇鋒眰鐨勪俊鎭紝騫朵笖鎻愪緵浜嗗嚑涓敤浜庤幏鍙朿ookie, header, 鍜宻ession鏁版嵁鐨勬湁鐢ㄧ殑鏂規硶,response琛ㄧずHttpServletResponse瀵硅薄錛屽茍鎻愪緵浜嗗嚑涓敤浜庤緗€佸洖嫻忚鍣ㄧ殑鍝嶅簲鐨勬柟娉曪紙濡俢ookies,澶翠俊鎭瓑錛?br />out瀵硅薄鏄痡avax.jsp.JspWriter鐨勪竴涓疄渚嬶紝騫舵彁渚涗簡鍑犱釜鏂規硶浣夸綘鑳界敤浜庡悜嫻忚鍣ㄥ洖閫佽緭鍑虹粨鏋溿€?pageContext琛ㄧず涓€涓猨avax.servlet.jsp.PageContext瀵硅薄銆傚畠鏄敤浜庢柟渚垮瓨鍙栧悇縐嶈寖鍥寸殑鍚嶅瓧絀洪棿銆乻ervlet鐩稿叧鐨勫璞$殑API錛屽茍涓斿寘瑁呬簡閫氱敤鐨剆ervlet鐩稿叧鍔熻兘鐨勬柟娉曘€偮犅犅犅?session琛ㄧず涓€涓姹傜殑javax.servlet.http.HttpSession瀵硅薄銆係ession鍙互瀛樿串鐢ㄦ埛鐨勭姸鎬佷俊鎭犅犅犅?applicaton 琛ㄧず涓€涓猨avax.servle.ServletContext瀵硅薄銆傝繖鏈夊姪浜庢煡鎵炬湁鍏硈ervlet寮曟搸鍜宻ervlet鐜鐨勪俊鎭犅犅犅?config琛ㄧず涓€涓猨avax.servlet.ServletConfig瀵硅薄銆傝瀵硅薄鐢ㄤ簬瀛樺彇servlet瀹炰緥鐨勫垵濮嬪寲鍙傛暟銆偮犅犅犅?page琛ㄧず浠庤欏甸潰浜х敓鐨勪竴涓猻ervlet瀹炰緥
58銆佺嚎紼嬬殑鍩烘湰姒傚康銆佺嚎紼嬬殑鍩烘湰鐘舵€佷互鍙婄姸鎬佷箣闂寸殑鍏崇郴綰跨▼鎸囧湪紼嬪簭鎵ц榪囩▼涓紝鑳藉鎵ц紼嬪簭浠g爜鐨勪竴涓墽琛屽崟浣嶏紝姣忎釜紼嬪簭鑷沖皯閮芥湁涓€涓嚎紼嬶紝涔熷氨鏄▼搴忔湰韜€侸ava涓殑綰跨▼鏈夊洓縐嶇姸鎬佸垎鍒槸錛氳繍琛屻€佸氨緇€佹寕璧楓€佺粨鏉熴€?/font>
59銆丣SP鐨勫父鐢ㄦ寚浠?lt;%@page language=鈥漥ava鈥?contenType=鈥漷ext/html;charset=gb2312鈥?session=鈥漷rue鈥?buffer=鈥?4kb鈥?autoFlush=鈥漷rue鈥?isThreadSafe=鈥漷rue鈥?info=鈥漷ext鈥?errorPage=鈥漞rror.jsp鈥?isErrorPage=鈥漷rue鈥?isELIgnored=鈥漷rue鈥?pageEncoding=鈥漡b2312鈥?import=鈥漥ava.sql.*鈥?>isErrorPage(鏄惁鑳戒嬌鐢‥xception瀵硅薄)錛宨sELIgnored(鏄惁蹇界暐琛ㄨ揪寮? <%@include file=鈥漟ilename鈥?><%@taglib prefix=鈥漜鈥漸ri=鈥漢ttp://鈥︹€︹€?>
60銆佷粈涔堟儏鍐典笅璋冪敤doGet()鍜宒oPost()錛烰sp欏甸潰涓殑form鏍囩閲岀殑method灞炴€т負get鏃惰皟鐢╠oGet()錛屼負post鏃惰皟鐢╠oPost()銆?/font>
61銆乻ervlet鐨勭敓鍛藉懆鏈焪eb瀹瑰櫒鍔犺澆servlet錛岀敓鍛藉懆鏈熷紑濮嬨€傞€氳繃璋冪敤servlet鐨刬nit()鏂規硶榪涜servlet鐨勫垵濮嬪寲銆傞€氳繃璋冪敤service()鏂規硶瀹炵幇錛屾牴鎹姹傜殑涓嶅悓璋冪敤涓嶅悓鐨刣o***()鏂規硶銆傜粨鏉熸湇鍔★紝web瀹瑰櫒璋冪敤servlet鐨刣estroy()鏂規硶銆?/font>
62銆佸浣曠幇瀹瀞ervlet鐨勫崟綰跨▼妯″紡聽聽聽聽聽聽 <%@ page isThreadSafe=鈥漟alse鈥?>
63銆侀〉闈㈤棿瀵硅薄浼犻€掔殑鏂規硶聽聽聽聽聽聽 request錛宻ession錛宎pplication錛宑ookie絳?/font>
64銆丣SP鍜孲ervlet鏈夊摢浜涚浉鍚岀偣鍜屼笉鍚岀偣錛屼粬浠箣闂寸殑鑱旂郴鏄粈涔堬紵
JSP鏄疭ervlet鎶€鏈殑鎵╁睍錛屾湰璐ㄤ笂鏄疭ervlet鐨勭畝鏄撴柟寮忥紝鏇村己璋冨簲鐢ㄧ殑澶栬〃琛ㄨ揪銆侸SP緙栬瘧鍚庢槸"綾籹ervlet"銆係ervlet鍜孞SP鏈€涓昏鐨勪笉鍚岀偣鍦ㄤ簬錛孲ervlet鐨勫簲鐢ㄩ€昏緫鏄湪Java鏂囦歡涓紝騫朵笖瀹屽叏浠庤〃紺哄眰涓殑HTML閲屽垎紱誨紑鏉ャ€傝€孞SP鐨勬儏鍐墊槸Java鍜孒TML鍙互緇勫悎鎴愪竴涓墿灞曞悕涓?jsp鐨勬枃浠躲€侸SP渚ч噸浜庤鍥撅紝Servlet涓昏鐢ㄤ簬鎺у埗閫昏緫銆?/font>
65銆佸洓縐嶄細璇濊窡韙妧鏈?cookie,url閲嶅啓,session,闅愯棌鍩?/font>
65,jsp鐨勫洓縐嶈寖鍥?br />page鍚︽槸浠h〃涓庝竴涓〉闈㈢浉鍏崇殑瀵硅薄鍜屽睘鎬с€備竴涓〉闈㈢敱涓€涓紪璇戝ソ鐨?Java servlet 綾伙紙鍙互甯︽湁浠諱綍鐨?include 鎸囦護錛屼絾鏄病鏈?include 鍔ㄤ綔錛夎〃紺恒€傝繖鏃㈠寘鎷?servlet 鍙堝寘鎷緙栬瘧鎴?servlet 鐨?JSP 欏甸潰
request鏄槸浠h〃涓?Web 瀹㈡埛鏈哄彂鍑虹殑涓€涓姹傜浉鍏崇殑瀵硅薄鍜屽睘鎬с€備竴涓姹傚彲鑳借法瓚婂涓〉闈紝娑夊強澶氫釜 Web 緇勪歡錛堢敱浜?forward 鎸囦護鍜?include 鍔ㄤ綔鐨勫叧緋伙級
session鏄槸浠h〃涓庣敤浜庢煇涓?Web 瀹㈡埛鏈虹殑涓€涓敤鎴蜂綋楠岀浉鍏崇殑瀵硅薄鍜屽睘鎬с€備竴涓?Web 浼氳瘽鍙互涔熺粡甯鎬細璺ㄨ秺澶氫釜瀹㈡埛鏈鴻姹?br />application鏄槸浠h〃涓庢暣涓?Web 搴旂敤紼嬪簭鐩稿叧鐨勫璞″拰灞炴€с€傝繖瀹炶川涓婃槸璺ㄨ秺鏁翠釜 Web 搴旂敤紼嬪簭錛屽寘鎷涓〉闈€€佽姹傚拰浼氳瘽鐨勪竴涓叏灞€浣滅敤鍩?/font>
66銆丷equest瀵硅薄鐨勪富瑕佹柟娉曪細
setAttribute(String name,Object)錛氳緗悕瀛椾負name鐨剅equest鐨勫弬鏁板€?br />getAttribute(String name)錛氳繑鍥炵敱name鎸囧畾鐨勫睘鎬у€?br />getAttributeNames()錛氳繑鍥瀝equest瀵硅薄鎵€鏈夊睘鎬х殑鍚嶅瓧闆嗗悎錛岀粨鏋滄槸涓€涓灇涓劇殑瀹炰緥
getCookies()錛氳繑鍥炲鎴風鐨勬墍鏈塁ookie瀵硅薄錛岀粨鏋滄槸涓€涓狢ookie鏁扮粍
getCharacterEncoding()錛氳繑鍥炶姹備腑鐨勫瓧絎︾紪鐮佹柟寮?br />getContentLength()錛氳繑鍥炶姹傜殑Body鐨勯暱搴?br />getHeader(String name)錛氳幏寰桯TTP鍗忚瀹氫箟鐨勬枃浠跺ご淇℃伅
getHeaders(String name)錛氳繑鍥炴寚瀹氬悕瀛楃殑request Header鐨勬墍鏈夊€鹼紝緇撴灉鏄竴涓灇涓劇殑瀹炰緥
getHeaderNames()錛氳繑鍥炴墍浠equest Header鐨勫悕瀛楋紝緇撴灉鏄竴涓灇涓劇殑瀹炰緥
getInputStream()錛氳繑鍥炶姹傜殑杈撳叆嫻侊紝鐢ㄤ簬鑾峰緱璇鋒眰涓殑鏁版嵁
getMethod()錛氳幏寰楀鎴風鍚戞湇鍔″櫒绔紶閫佹暟鎹殑鏂規硶
getParameter(String name)錛氳幏寰楀鎴風浼犻€佺粰鏈嶅姟鍣ㄧ鐨勬湁name鎸囧畾鐨勫弬鏁板€?br />getParameterNames()錛氳幏寰楀鎴風浼犻€佺粰鏈嶅姟鍣ㄧ鐨勬墍鏈夊弬鏁扮殑鍚嶅瓧錛岀粨鏋滄槸涓€涓灇涓劇殑瀹炰緥
getParameterValues(String name)錛氳幏寰楁湁name鎸囧畾鐨勫弬鏁扮殑鎵€鏈夊€?br />getProtocol()錛氳幏鍙栧鎴風鍚戞湇鍔″櫒绔紶閫佹暟鎹墍渚濇嵁鐨勫崗璁悕縐?br />getQueryString()錛氳幏寰楁煡璇㈠瓧絎︿覆
getRequestURI()錛氳幏鍙栧彂鍑鴻姹傚瓧絎︿覆鐨勫鎴風鍦板潃
getRemoteAddr()錛氳幏鍙栧鎴風鐨処P鍦板潃
getRemoteHost()錛氳幏鍙栧鎴風鐨勫悕瀛?br />getSession([Boolean create])錛氳繑鍥炲拰璇鋒眰鐩稿叧Session
getServerName()錛氳幏鍙栨湇鍔″櫒鐨勫悕瀛?br />getServletPath()錛氳幏鍙栧鎴風鎵€璇鋒眰鐨勮剼鏈枃浠剁殑璺緞
getServerPort()錛氳幏鍙栨湇鍔″櫒鐨勭鍙e彿
removeAttribute(String name)錛氬垹闄よ姹備腑鐨勪竴涓睘鎬?/font>
67銆丣2EE鏄妧鏈繕鏄鉤鍙拌繕鏄鏋訛紵J2EE鏈韓鏄竴涓爣鍑嗭紝涓€涓負浼佷笟鍒嗗竷寮忓簲鐢ㄧ殑寮€鍙戞彁渚涚殑鏍囧噯騫沖彴銆?br />J2EE涔熸槸涓€涓鏋訛紝鍖呮嫭JDBC銆丣NDI銆丷MI銆丣MS銆丒JB銆丣TA絳夋妧鏈€?/font>
68銆佹垜浠湪web搴旂敤寮€鍙戣繃紼嬩腑緇忓父閬囧埌杈撳嚭鏌愮緙栫爜鐨勫瓧絎︼紝濡俰so8859-1絳夛紝濡備綍杈撳嚭涓€涓煇縐嶇紪鐮佺殑瀛楃涓詫紵
聽聽聽聽聽 Public String translate (String str) {聽聽聽聽聽聽 String tempStr = "";聽聽聽聽聽聽 try { tempStr = new String(str.getBytes("ISO-8859-1"), "GBK"); tempStr = tempStr.trim(); } catch (Exception e) {聽聽聽聽聽聽 System.err.println(e.getMessage());聽聽聽聽聽聽 } return tempStr;聽聽聽聽聽聽 }
69銆佺畝榪伴€昏緫鎿嶄綔(&,|,^)涓庢潯浠舵搷浣?&&,||)鐨勫尯鍒€傚尯鍒富瑕佺瓟涓ょ偣錛歛.鏉′歡鎿嶄綔鍙兘鎿嶄綔甯冨皵鍨嬬殑,鑰岄€昏緫鎿嶄綔涓嶄粎鍙互鎿嶄綔甯冨皵鍨?鑰屼笖鍙互鎿嶄綔鏁板€煎瀷b.閫昏緫鎿嶄綔涓嶄細浜х敓鐭礬
70銆乆ML鏂囨。瀹氫箟鏈夊嚑縐嶅艦寮忥紵瀹冧滑涔嬮棿鏈変綍鏈川鍖哄埆錛熻В鏋怷ML鏂囨。鏈夊摢鍑犵鏂瑰紡錛?br />a: 涓ょ褰㈠紡 dtd聽聽聽聽聽聽 schema錛宐: 鏈川鍖哄埆:schema鏈韓鏄痻ml鐨勶紝鍙互琚玐ML瑙f瀽鍣ㄨВ鏋?榪欎篃鏄粠DTD涓婂彂灞晄chema鐨勬牴鏈洰鐨?錛宑:鏈塂OM,SAX,STAX絳壜犅犅犅犅犅?DOM:澶勭悊澶у瀷鏂囦歡鏃跺叾鎬ц兘涓嬮檷鐨勯潪甯稿帀瀹熾€傝繖涓棶棰樻槸鐢盌OM鐨勬爲緇撴瀯鎵€閫犳垚鐨勶紝榪欑緇撴瀯鍗犵敤鐨勫唴瀛樿緝澶氾紝鑰屼笖DOM蹇呴』鍦ㄨВ鏋愭枃浠朵箣鍓嶆妸鏁翠釜鏂囨。瑁呭叆鍐呭瓨,閫傚悎瀵筙ML鐨勯殢鏈鴻闂犅犅犅犅犅?SAX:涓嶇幇浜嶥OM,SAX鏄簨浠墮┍鍔ㄥ瀷鐨刋ML瑙f瀽鏂瑰紡銆傚畠欏哄簭璇誨彇XML鏂囦歡錛屼笉闇€瑕佷竴嬈″叏閮ㄨ杞芥暣涓枃浠躲€傚綋閬囧埌鍍忔枃浠跺紑澶達紝鏂囨。緇撴潫錛屾垨鑰呮爣絳懼紑澶翠笌鏍囩緇撴潫鏃訛紝瀹冧細瑙﹀彂涓€涓簨浠訛紝鐢ㄦ埛閫氳繃鍦ㄥ叾鍥炶皟浜嬩歡涓啓鍏ュ鐞嗕唬鐮佹潵澶勭悊XML鏂囦歡錛岄€傚悎瀵筙ML鐨勯『搴忚闂?STAX:Streaming API for XML (StAX)
71銆佺畝榪皊ynchronized鍜宩ava.util.concurrent.locks.Lock鐨勫紓鍚岋紵
涓昏鐩稿悓鐐癸細Lock鑳藉畬鎴恠ynchronized鎵€瀹炵幇鐨勬墍鏈夊姛鑳戒富瑕佷笉鍚岀偣錛歀ock鏈夋瘮synchronized鏇寸簿紜殑綰跨▼璇箟鍜屾洿濂界殑鎬ц兘銆俿ynchronized浼氳嚜鍔ㄩ噴鏀鵑攣錛岃€孡ock涓€瀹氳姹傜▼搴忓憳鎵嬪伐閲婃斁錛屽茍涓斿繀欏誨湪finally浠庡彞涓噴鏀俱€?/font>
72銆丒JB鐨勮鑹插拰涓変釜瀵硅薄
涓€涓畬鏁寸殑鍩轟簬EJB鐨勫垎甯冨紡璁$畻緇撴瀯鐢卞叚涓鑹茬粍鎴愶紝榪欏叚涓鑹插彲浠ョ敱涓嶅悓鐨勫紑鍙戝晢鎻愪緵錛屾瘡涓鑹叉墍浣滅殑宸ヤ綔蹇呴』閬靛驚Sun鍏徃鎻愪緵鐨凟JB瑙勮寖錛屼互淇濊瘉褰兼涔嬮棿鐨勫吋瀹規€с€傝繖鍏釜瑙掕壊鍒嗗埆鏄疎JB緇勪歡寮€鍙戣€咃紙Enterprise Bean Provider錛?銆佸簲鐢ㄧ粍鍚堣€咃紙Application Assembler錛夈€侀儴緗茶€咃紙Deployer錛夈€丒JB 鏈嶅姟鍣ㄦ彁渚涜€咃紙EJB Server Provider錛夈€丒JB 瀹瑰櫒鎻愪緵鑰咃紙EJB Container Provider錛夈€佺郴緇熺鐞嗗憳錛圫ystem Administrator錛変笁涓璞℃槸Remote錛圠ocal錛夋帴鍙c€丠ome錛圠ocalHome錛夋帴鍙o紝Bean綾?/font>
73銆丒JB瀹瑰櫒鎻愪緵鐨勬湇鍔′富瑕佹彁渚涘0鏄庡懆鏈熺鐞嗐€佷唬鐮佷駭鐢熴€佹寔緇€х鐞嗐€佸畨鍏ㄣ€佷簨鍔$鐞嗐€侀攣鍜屽茍鍙戣綆$悊絳夋湇鍔°€?/p>
74銆丒JB瑙勮寖瑙勫畾EJB涓姝㈢殑鎿嶄綔鏈夊摢浜涳紵 1.涓嶈兘鎿嶄綔綰跨▼鍜岀嚎紼婣PI(綰跨▼API鎸囬潪綰跨▼瀵硅薄鐨勬柟娉曞notify,wait絳?錛?.涓嶈兘鎿嶄綔awt錛?.涓嶈兘瀹炵幇鏈嶅姟鍣ㄥ姛鑳斤紝4.涓嶈兘瀵歸潤鎬佸睘鐢熷瓨鍙栵紝5.涓嶈兘浣跨敤IO鎿嶄綔鐩存帴瀛樺彇鏂囦歡緋葷粺錛?.涓嶈兘鍔犺澆鏈湴搴?錛?.涓嶈兘灝唗his浣滀負鍙橀噺鍜岃繑鍥烇紝8.涓嶈兘寰幆璋冪敤銆?/p>
75銆乺emote鎺ュ彛鍜宧ome鎺ュ彛涓昏浣滅敤remote鎺ュ彛瀹氫箟浜嗕笟鍔℃柟娉曪紝鐢ㄤ簬EJB瀹㈡埛绔皟鐢ㄤ笟鍔℃柟娉曘€俬ome鎺ュ彛鏄疎JB宸ュ巶鐢ㄤ簬鍒涘緩鍜岀Щ闄ゆ煡鎵綞JB瀹炰緥
76銆乥ean 瀹炰緥鐨勭敓鍛藉懆鏈熷浜嶴tateless Session Bean銆丒ntity Bean銆丮essage Driven Bean涓€鑸瓨鍦ㄧ紦鍐叉睜綆$悊錛岃€屽浜嶦ntity Bean鍜孲tatefull Session Bean瀛樺湪Cache綆$悊錛岄€氬父鍖呭惈鍒涘緩瀹炰緥錛岃緗笂涓嬫枃銆佸垱寤篍JB Object錛坈reate錛夈€佷笟鍔℃柟娉曡皟鐢ㄣ€乺emove絳夎繃紼嬶紝瀵逛簬瀛樺湪緙撳啿姹犵鐞嗙殑Bean錛屽湪create涔嬪悗瀹炰緥騫朵笉浠庡唴瀛樻竻闄わ紝鑰屾槸閲囩敤緙撳啿姹犺皟搴︽満鍒朵笉鏂噸鐢ㄥ疄渚嬶紝鑰屽浜庡瓨鍦–ache綆$悊鐨凚ean鍒欓€氳繃嬋€媧誨拰鍘繪縺媧繪満鍒朵繚鎸丅ean鐨勭姸鎬佸茍闄愬埗鍐呭瓨涓疄渚嬫暟閲忋€?/p>
77銆丒JB鐨勬縺媧繪満鍒?浠tateful Session Bean 涓轟緥錛氬叾Cache澶у皬鍐沖畾浜嗗唴瀛樹腑鍙互鍚屾椂瀛樺湪鐨凚ean瀹炰緥鐨勬暟閲忥紝鏍規嵁MRU鎴朜RU綆楁硶錛屽疄渚嬪湪嬋€媧誨拰鍘繪縺媧葷姸鎬佷箣闂磋縼縐伙紝嬋€媧繪満鍒舵槸褰撳鎴風璋冪敤鏌愪釜EJB瀹炰緥涓氬姟鏂規硶鏃訛紝濡傛灉瀵瑰簲EJB Object鍙戠幇鑷繁娌℃湁緇戝畾瀵瑰簲鐨凚ean瀹炰緥鍒欎粠鍏跺幓嬋€媧籅ean瀛樺偍涓紙閫氳繃搴忓垪鍖栨満鍒跺瓨鍌ㄥ疄渚嬶級鍥炲錛堟縺媧伙級姝ゅ疄渚嬨€傜姸鎬佸彉榪佸墠浼氳皟鐢ㄥ搴旂殑ejbActive鍜宔jbPassivate鏂規硶銆?/p>
78銆丒JB鐨勫嚑縐嶇被鍨嬩細璇濓紙Session錛塀ean 錛屽疄浣擄紙Entity錛塀ean 娑堟伅椹卞姩鐨勶紙Message Driven錛塀ean聽聽聽聽聽聽 錛涗細璇滲ean鍙堝彲鍒嗕負鏈夌姸鎬侊紙Stateful錛夊拰鏃犵姸鎬侊紙Stateless錛変袱縐嶏紱瀹炰綋Bean鍙垎涓築ean綆$悊鐨勬寔緇€э紙BMP錛夊拰瀹瑰櫒綆$悊鐨勬寔緇€э紙CMP錛変袱縐?/p>
79銆佸鏈嶇璋冪敤EJB瀵硅薄鐨勫嚑涓熀鏈楠よ緗甁NDI鏈嶅姟宸ュ巶浠ュ強JNDI鏈嶅姟鍦板潃緋葷粺灞炴€э紝鏌ユ壘Home鎺ュ彛錛屼粠Home鎺ュ彛璋冪敤Create鏂規硶鍒涘緩Remote鎺ュ彛錛岄€氳繃Remote鎺ュ彛璋冪敤鍏朵笟鍔℃柟娉曘€?/p>
80銆佸浣曠粰weblogic鎸囧畾澶у皬鐨勫唴瀛? 鍦ㄥ惎鍔╓eblogic鐨勮剼鏈腑錛堜綅浜庢墍鍦―omian瀵瑰簲鏈嶅姟鍣ㄧ洰褰曚笅鐨剆tartServerName錛夛紝澧炲姞set MEM_ARGS=-Xms32m -Xmx200m錛屽彲浠ヨ皟鏁存渶灝忓唴瀛樹負32M錛屾渶澶?00M
81銆佸浣曡瀹氱殑weblogic鐨勭儹鍚姩妯″紡(寮€鍙戞ā寮?涓庝駭鍝佸彂甯冩ā寮?鍙互鍦ㄧ鐞嗘帶鍒跺彴涓慨鏀瑰搴旀湇鍔″櫒鐨勫惎鍔ㄦā寮忎負寮€鍙戞垨浜у搧妯″紡涔嬩竴銆傛垨鑰呬慨鏀規湇鍔$殑鍚姩鏂囦歡鎴栬€卌ommenv鏂囦歡錛屽鍔爏et PRODUCTION_MODE=true銆?/p>
82銆佸浣曞惎鍔ㄦ椂涓嶉渶杈撳叆鐢ㄦ埛鍚嶄笌瀵嗙爜?淇敼鏈嶅姟鍚姩鏂囦歡錛屽鍔?WLS_USER鍜學LS_PW欏廣€備篃鍙互鍦╞oot.properties鏂囦歡涓鍔犲姞瀵嗚繃鐨勭敤鎴峰悕鍜屽瘑鐮?
83銆佸湪weblogic綆$悊鍒跺彴涓涓€涓簲鐢ㄥ煙(鎴栬€呰鏄竴涓綉绔?Domain)榪涜jms鍙奺jb鎴栬繛鎺ユ睜絳夌浉鍏充俊鎭繘琛岄厤緗悗,瀹為檯淇濆瓨鍦ㄤ粈涔堟枃浠朵腑?淇濆瓨鍦ㄦDomain鐨刢onfig.xml鏂囦歡涓紝瀹冩槸鏈嶅姟鍣ㄧ殑鏍稿績閰嶇疆鏂囦歡銆?/p>
84銆佽璇磜eblogic涓竴涓狣omain鐨勭己鐪佺洰褰曠粨鏋?姣斿瑕佸皢涓€涓畝鍗曠殑helloWorld.jsp鏀懼叆浣曠洰褰曚笅,鐒剁殑鍦ㄦ祻瑙堝櫒涓婂氨鍙墦鍏ttp://涓繪満:绔彛鍙?/helloword.jsp灝卞彲浠ョ湅鍒拌繍琛岀粨鏋滀簡? 鍙堟瘮濡傝繖鍏朵腑鐢ㄥ埌浜嗕竴涓嚜宸卞啓鐨刯avaBean璇ュ浣曞姙?
Domain鐩綍\鏈嶅姟鍣ㄧ洰褰昞applications錛屽皢搴旂敤鐩綍鏀懼湪姝ょ洰褰曚笅灝嗗彲浠ヤ綔涓哄簲鐢ㄨ闂紝濡傛灉鏄疻eb搴旂敤錛屽簲鐢ㄧ洰褰曢渶瑕佹弧瓚砏eb搴旂敤鐩綍瑕佹眰錛宩sp鏂囦歡鍙互鐩存帴鏀懼湪搴旂敤鐩綍涓紝Javabean闇€瑕佹斁鍦ㄥ簲鐢ㄧ洰褰曠殑WEB-INF鐩綍鐨刢lasses鐩綍涓紝璁劇疆鏈嶅姟鍣ㄧ殑緙虹渷搴旂敤灝嗗彲浠ュ疄鐜板湪嫻忚鍣ㄤ笂鏃犻渶杈撳叆搴旂敤鍚嶃€?/p>
85銆佸湪weblogic涓彂甯僥jb闇€娑夊強鍒板摢浜涢厤緗枃浠朵笉鍚岀被鍨嬬殑EJB娑夊強鐨勯厤緗枃浠朵笉鍚岋紝閮芥秹鍙婂埌鐨勯厤緗枃浠跺寘鎷琫jb-jar.xml,weblogic-ejb-jar.xmlCMP瀹炰綋Bean涓€鑸繕闇€瑕亀eblogic-cmp-rdbms-jar.xml
86銆佸浣曞湪weblogic涓繘琛宻sl閰嶇疆涓庡鎴風鐨勮璇侀厤緗垨璇磋j2ee(鏍囧噯)榪涜ssl鐨勯厤緗己鐪佸畨瑁呬腑浣跨敤DemoIdentity.jks鍜孌emoTrust.jks聽聽聽聽聽聽 KeyStore瀹炵幇SSL錛岄渶瑕侀厤緗湇鍔″櫒浣跨敤Enable SSL錛岄厤緗叾绔彛錛屽湪浜у搧妯″紡涓嬮渶瑕佷粠CA鑾峰彇縐佹湁瀵嗛挜鍜屾暟瀛楄瘉涔︼紝鍒涘緩identity鍜宼rust keystore錛岃杞借幏寰楃殑瀵嗛挜鍜屾暟瀛楄瘉涔︺€傚彲浠ラ厤緗SSL榪炴帴鏄崟鍚戣繕鏄弻鍚戠殑銆?/p>
87銆佸浣曟煡鐪嬪湪weblogic涓凡緇忓彂甯冪殑EJB?鍙互浣跨敤綆$悊鎺у埗鍙幫紝鍦ㄥ畠鐨凞eployment涓彲浠ユ煡鐪嬫墍鏈夊凡鍙戝竷鐨凟JB
88銆丆ORBA鏄粈涔?鐢ㄩ€旀槸浠€涔? CORBA 鏍囧噯鏄叕鍏卞璞¤姹備唬鐞嗙粨鏋?Common Object Request Broker Architecture)錛岀敱瀵硅薄綆$悊緇勭粐 (Object Management Group錛岀緝鍐欎負 OMG)鏍囧噯鍖栥€傚畠鐨勭粍鎴愭槸鎺ュ彛瀹氫箟璇█(IDL), 璇█緇戝畾(binding:涔熻瘧涓鴻仈緙?鍜屽厑璁稿簲鐢ㄧ▼搴忛棿浜掓搷浣滅殑鍗忚銆傚叾鐩殑涓猴細鐢ㄤ笉鍚岀殑紼嬪簭璁捐璇█涔﹀啓鍦ㄤ笉鍚岀殑榪涚▼涓繍琛岋紝涓轟笉鍚岀殑鎿嶄綔緋葷粺寮€鍙戙€?/p>
89銆佽璇翠綘鎵€鐔熸倝鎴栧惉璇磋繃鐨刯2ee涓殑鍑犵甯哥敤妯″紡?鍙婂璁捐妯″紡鐨勪竴浜涚湅娉?br />聽聽聽聽聽 Session Facade Pattern錛氫嬌鐢⊿essionBean璁塊棶EntityBean錛汳essage Facade Pattern錛氬疄鐜板紓姝ヨ皟鐢紱EJB Command Pattern錛氫嬌鐢–ommand JavaBeans鍙栦唬SessionBean錛屽疄鐜拌交閲忕駭璁塊棶錛汥ata Transfer Object Factory錛氶€氳繃DTO Factory綆€鍖朎ntityBean鏁版嵁鎻愪緵鐗規€э紱Generic Attribute Access錛氶€氳繃AttibuteAccess鎺ュ彛綆€鍖朎ntityBean鏁版嵁鎻愪緵鐗規€э紱Business Interface錛氶€氳繃榪滅▼錛堟湰鍦幫級鎺ュ彛鍜孊ean綾誨疄鐜扮浉鍚屾帴鍙h鑼冧笟鍔¢€昏緫涓€鑷存€э紱錛ワ吉錛㈡灦鏋勭殑璁捐濂藉潖灝嗙洿鎺ュ獎鍝嶇郴緇熺殑鎬ц兘銆佸彲鎵╁睍鎬с€佸彲緇存姢鎬с€佺粍浠跺彲閲嶇敤鎬у強寮€鍙戞晥鐜囥€傞」鐩秺澶嶆潅錛岄」鐩槦浼嶈秺搴炲ぇ鍒欒秺鑳戒綋鐜拌壇濂借璁$殑閲嶈鎬с€?/p>
90銆佽璇村湪weblogic涓紑鍙戞秷鎭疊ean鏃剁殑persistent涓巒on-persisten鐨勫樊鍒玴ersistent鏂瑰紡鐨凪DB鍙互淇濊瘉娑堟伅浼犻€掔殑鍙潬鎬?涔熷氨鏄鏋淓JB瀹瑰櫒鍑虹幇闂鑰孞MS鏈嶅姟鍣ㄤ緷鐒朵細灝嗘秷鎭湪姝DB鍙敤鐨勬椂鍊欏彂閫佽繃鏉ワ紝鑰宯on錛峱ersistent鏂瑰紡鐨勬秷鎭皢琚涪寮冦€?/p>
91銆丼ervlet鎵ц鏃朵竴鑸疄鐜板摢鍑犱釜鏂規硶錛焢ublic void init(ServletConfig config)錛沺ublic ServletConfig getServletConfig()錛沺ublic String getServletInfo()錛沺ublic void service(ServletRequest request,ServletResponse response)錛沺ublic void destroy()
92銆佸父鐢ㄧ殑璁捐妯″紡錛熻鏄庡伐鍘傛ā寮忋€?Java涓殑23縐嶈璁℃ā寮忥細Factory錛堝伐鍘傛ā寮忥級錛孊uilder錛堝緩閫犳ā寮忥級錛?Factory Method錛堝伐鍘傛柟娉曟ā寮忥級錛孭rototype錛堝師濮嬫ā鍨嬫ā寮忥級錛孲ingleton錛堝崟渚嬫ā寮忥級錛?Facade錛堥棬闈㈡ā寮忥級錛孉dapter錛堥€傞厤鍣ㄦā寮忥級錛?Bridge錛堟ˉ姊佹ā寮忥級錛?Composite錛堝悎鎴愭ā寮忥級錛孌ecorator錛堣楗版ā寮忥級錛?Flyweight錛堜韓鍏冩ā寮忥級錛?Proxy錛堜唬鐞嗘ā寮忥級錛孋ommand錛堝懡浠ゆā寮忥級錛?Interpreter錛堣В閲婂櫒妯″紡錛夛紝 Visitor錛堣闂€呮ā寮忥級錛孖terator錛堣凱浠e瓙妯″紡錛夛紝 Mediator錛堣皟鍋滆€呮ā寮忥級錛?Memento錛堝蹇樺綍妯″紡錛夛紝Observer錛堣瀵熻€呮ā寮忥級錛孲tate錛堢姸鎬佹ā寮忥級錛孲trategy錛堢瓥鐣ユā寮忥級錛孴emplate Method錛堟ā鏉挎柟娉曟ā寮忥級錛?Chain Of Responsibleity錛堣矗浠婚摼妯″紡錛夈€傚伐鍘傛ā寮忥細宸ュ巶妯″紡鏄竴縐嶇粡甯歌浣跨敤鍒扮殑妯″紡錛屾牴鎹伐鍘傛ā寮忓疄鐜扮殑綾誨彲浠ユ牴鎹彁渚涚殑鏁版嵁鐢熸垚涓€緇勭被涓煇涓€涓被鐨勫疄渚嬶紝閫氬父榪欎竴緇勭被鏈変竴涓叕鍏辯殑鎶借薄鐖剁被騫朵笖瀹炵幇浜嗙浉鍚岀殑鏂規硶錛屼絾鏄繖浜涙柟娉曢拡瀵逛笉鍚岀殑鏁版嵁榪涜浜嗕笉鍚岀殑鎿嶄綔銆傞鍏堥渶瑕佸畾涔変竴涓熀綾伙紝璇ョ被鐨勫瓙綾婚€氳繃涓嶅悓鐨勬柟娉曞疄鐜頒簡鍩虹被涓殑鏂規硶銆傜劧鍚庨渶瑕佸畾涔変竴涓伐鍘傜被錛屽伐鍘傜被鍙互鏍規嵁鏉′歡鐢熸垚涓嶅悓鐨勫瓙綾誨疄渚嬨€傚綋寰楀埌瀛愮被鐨勫疄渚嬪悗錛屽紑鍙戜漢鍛樺彲浠ヨ皟鐢ㄥ熀綾諱腑鐨勬柟娉曡€屼笉蹇呰€冭檻鍒板簳榪斿洖鐨勬槸鍝竴涓瓙綾葷殑瀹炰緥銆?/p>
93銆丒JB闇€鐩存帴瀹炵幇瀹冪殑涓氬姟鎺ュ彛鎴朒ome鎺ュ彛鍚楋紝璇風畝榪扮悊鐢便€傝繙紼嬫帴鍙e拰Home鎺ュ彛涓嶉渶瑕佺洿鎺ュ疄鐜幫紝浠栦滑鐨勫疄鐜頒唬鐮佹槸鐢辨湇鍔″櫒浜х敓鐨勶紝紼嬪簭榪愯涓搴斿疄鐜扮被浼氫綔涓哄搴旀帴鍙g被鍨嬬殑瀹炰緥琚嬌鐢ㄣ€?/p>
94銆佹帓搴忛兘鏈夊摢鍑犵鏂規硶錛熻鍒椾婦銆傜敤JAVA瀹炵幇涓€涓揩閫熸帓搴忋€傛帓搴忕殑鏂規硶鏈夛細鎻掑叆鎺掑簭錛堢洿鎺ユ彃鍏ユ帓搴忋€佸笇灝旀帓搴忥級錛屼氦鎹㈡帓搴忥紙鍐掓場鎺掑簭銆佸揩閫熸帓搴忥級錛岄€夋嫨鎺掑簭錛堢洿鎺ラ€夋嫨鎺掑簭銆佸爢鎺掑簭錛夛紝褰掑茍鎺掑簭錛屽垎閰嶆帓搴忥紙綆辨帓搴忋€佸熀鏁版帓搴忥級
蹇€熸帓搴忕殑浼唬鐮併€? /浣跨敤蹇€熸帓搴忔柟娉曞a[ 0 :n- 1 ]鎺掑簭錛屼粠a[ 0 :n- 1 ]涓€夋嫨涓€涓厓绱犱綔涓簃 i d d l e錛岃鍏冪礌涓烘敮鐐癸紝
鎶婁綑涓嬬殑鍏冪礌鍒嗗壊涓轟袱孌祃eft 鍜宺 i g h t錛屼嬌寰條 e f t涓殑鍏冪礌閮藉皬浜庣瓑浜庢敮鐐癸紝鑰宺ight 涓殑鍏冪礌閮藉ぇ浜庣瓑浜庢敮鐐癸紝閫掑綊鍦頒嬌鐢ㄥ揩閫熸帓搴忔柟娉曞left 榪涜鎺掑簭錛岄€掑綊鍦頒嬌鐢ㄥ揩閫熸帓搴忔柟娉曞right 榪涜鎺掑簭錛屾墍寰楃粨鏋滀負l e f t + m i d d l e + r i g h t銆?/p>
95銆佽瀵逛互涓嬪湪J2EE涓父鐢ㄧ殑鍚嶈瘝榪涜瑙i噴(鎴栫畝鍗曟弿榪?web瀹瑰櫒錛氱粰澶勪簬鍏朵腑鐨勫簲鐢ㄧ▼搴忕粍浠訛紙JSP錛孲ERVLET錛夋彁渚涗竴涓幆澧冿紝浣縅SP,SERVLET鐩存帴鏇村鍣ㄤ腑鐨勭幆澧冨彉閲忔帴鍙d氦浜掞紝涓嶅繀鍏蟲敞鍏跺畠緋葷粺闂銆備富瑕佹湁WEB鏈嶅姟鍣ㄦ潵瀹炵幇銆備緥濡傦細TOMCAT,WEBLOGIC,WEBSPHERE絳夈€傝瀹瑰櫒鎻愪緵鐨勬帴鍙d弗鏍奸伒瀹圝2EE瑙勮寖涓殑WEB APPLICATION 鏍囧噯銆傛垜浠妸閬靛畧浠ヤ笂鏍囧噯鐨刉EB鏈嶅姟鍣ㄥ氨鍙仛J2EE涓殑WEB瀹瑰櫒銆侲JB瀹瑰櫒錛欵nterprise java bean 瀹瑰櫒銆傛洿鍏鋒湁琛屼笟棰嗗煙鐗硅壊銆備粬鎻愪緵緇欒繍琛屽湪鍏朵腑鐨勭粍浠禘JB鍚勭綆$悊鍔熻兘銆傚彧瑕佹弧瓚矹2EE瑙勮寖鐨凟JB鏀懼叆璇ュ鍣紝椹笂灝變細琚鍣ㄨ繘琛岄珮鏁堢巼鐨勭鐞嗐€傚茍涓斿彲浠ラ€氳繃鐜版垚鐨勬帴鍙f潵鑾峰緱緋葷粺綰у埆鐨勬湇鍔°€備緥濡傞偖浠舵湇鍔°€佷簨鍔$鐞嗐€侸NDI錛氾紙Java Naming & Directory Interface錛塉AVA鍛藉悕鐩綍鏈嶅姟銆備富瑕佹彁渚涚殑鍔熻兘鏄細鎻愪緵涓€涓洰褰曠郴緇燂紝璁╁叾瀹冨悇鍦扮殑搴旂敤紼嬪簭鍦ㄥ叾涓婇潰鐣欎笅鑷繁鐨勭儲寮曪紝浠庤€屾弧瓚沖揩閫熸煡鎵懼拰瀹氫綅鍒嗗竷寮忓簲鐢ㄧ▼搴忕殑鍔熻兘銆侸MS錛氾紙Java Message Service錛塉AVA娑堟伅鏈嶅姟銆備富瑕佸疄鐜板悇涓簲鐢ㄧ▼搴忎箣闂寸殑閫氳銆傚寘鎷偣瀵圭偣鍜屽箍鎾€侸TA錛氾紙Java Transaction API錛塉AVA浜嬪姟鏈嶅姟銆傛彁渚涘悇縐嶅垎甯冨紡浜嬪姟鏈嶅姟銆傚簲鐢ㄧ▼搴忓彧闇€璋冪敤鍏舵彁渚涚殑鎺ュ彛鍗沖彲銆侸AF錛氾紙Java Action FrameWork錛塉AVA瀹夊叏璁よ瘉妗嗘灦銆傛彁渚涗竴浜涘畨鍏ㄦ帶鍒舵柟闈㈢殑妗嗘灦銆傝寮€鍙戣€呴€氳繃鍚勭閮ㄧ講鍜岃嚜瀹氫箟瀹炵幇鑷繁鐨勪釜鎬у畨鍏ㄦ帶鍒剁瓥鐣ャ€俁MI/IIOP:錛圧emote Method Invocation /internet瀵硅薄璇鋒眰涓粙鍗忚錛変粬浠富瑕佺敤浜庨€氳繃榪滅▼璋冪敤鏈嶅姟銆備緥濡傦紝榪滅▼鏈変竴鍙拌綆楁満涓婅繍琛屼竴涓▼搴忥紝瀹冩彁渚涜偂紲ㄥ垎鏋愭湇鍔★紝鎴戜滑鍙互鍦ㄦ湰鍦拌綆楁満涓婂疄鐜板鍏剁洿鎺ヨ皟鐢ㄣ€傚綋鐒惰繖鏄閫氳繃涓€瀹氱殑瑙勮寖鎵嶈兘鍦ㄥ紓鏋勭殑緋葷粺涔嬮棿榪涜閫氫俊銆俁MI鏄疛AVA鐗規湁鐨勩€?/p>
96銆丣AVA璇█濡備綍榪涜寮傚父澶勭悊錛屽叧閿瓧錛歵hrows,throw,try,catch,finally鍒嗗埆浠h〃浠€涔堟剰涔夛紵鍦╰ry鍧椾腑鍙互鎶涘嚭寮傚父鍚楋紵
Java閫氳繃闈㈠悜瀵硅薄鐨勬柟娉曡繘琛屽紓甯稿鐞嗭紝鎶婂悇縐嶄笉鍚岀殑寮傚父榪涜鍒嗙被錛屽茍鎻愪緵浜嗚壇濂界殑鎺ュ彛銆傚湪Java涓紝姣忎釜寮傚父閮芥槸涓€涓璞★紝瀹冩槸Throwable綾繪垨鍏跺畠瀛愮被鐨勫疄渚嬨€傚綋涓€涓柟娉曞嚭鐜板紓甯稿悗渚挎姏鍑轟竴涓紓甯稿璞★紝璇ュ璞′腑鍖呭惈鏈夊紓甯鎬俊鎭紝璋冪敤榪欎釜瀵硅薄鐨勬柟娉曞彲浠ユ崟鑾峰埌榪欎釜寮傚父騫惰繘琛屽鐞嗐€侸ava鐨勫紓甯稿鐞嗘槸閫氳繃5涓叧閿瘝鏉ュ疄鐜扮殑錛歵ry銆乧atch銆乼hrow銆乼hrows鍜宖inally銆備竴鑸儏鍐典笅鏄敤try鏉ユ墽琛屼竴孌電▼搴忥紝濡傛灉鍑虹幇寮傚父錛岀郴緇熶細鎶涘嚭錛坱hrows錛変竴涓紓甯革紝榪欐椂鍊欎綘鍙互閫氳繃瀹冪殑綾誨瀷鏉ユ崟鎹夛紙catch錛夊畠錛屾垨鏈€鍚庯紙finally錛夌敱緙虹渷澶勭悊鍣ㄦ潵澶勭悊銆傜敤try鏉ユ寚瀹氫竴鍧楅闃叉墍鏈夆€滃紓甯糕€濈殑紼嬪簭銆傜揣璺熷湪try紼嬪簭鍚庨潰錛屽簲鍖呭惈涓€涓猚atch瀛愬彞鏉ユ寚瀹氫綘鎯寵鎹曟崏鐨勨€滃紓甯糕€濈殑綾誨瀷銆倀hrow璇彞鐢ㄦ潵鏄庣‘鍦版姏鍑轟竴涓€滃紓甯糕€濄€倀hrows鐢ㄦ潵鏍囨槑涓€涓垚鍛樺嚱鏁板彲鑳芥姏鍑虹殑鍚勭鈥滃紓甯糕€濄€侳inally涓虹‘淇濅竴孌典唬鐮佷笉綆″彂鐢熶粈涔堚€滃紓甯糕€濋兘琚墽琛屼竴孌典唬鐮併€傚彲浠ュ湪涓€涓垚鍛樺嚱鏁拌皟鐢ㄧ殑澶栭潰鍐欎竴涓猼ry璇彞錛屽湪榪欎釜鎴愬憳鍑芥暟鍐呴儴鍐欏彟涓€涓猼ry璇彞淇濇姢鍏朵粬浠g爜銆傛瘡褰撻亣鍒頒竴涓猼ry璇彞錛屸€滃紓甯糕€濈殑妗嗘灦灝辨斁鍒板爢鏍堜笂闈紝鐩村埌鎵€鏈夌殑try璇彞閮藉畬鎴愩€傚鏋滀笅涓€綰х殑try璇彞娌℃湁瀵規煇縐嶁€滃紓甯糕€濊繘琛屽鐞嗭紝鍫嗘爤灝變細灞曞紑錛岀洿鍒伴亣鍒版湁澶勭悊榪欑鈥滃紓甯糕€濈殑try璇彞銆?/p>
97銆佷竴涓€?java鈥濇簮鏂囦歡涓槸鍚﹀彲浠ュ寘鎷涓被錛堜笉鏄唴閮ㄧ被錛夛紵鏈変粈涔堥檺鍒訛紵鍙互銆傚繀欏誨彧鏈変竴涓被鍚嶄笌鏂囦歡鍚嶇浉鍚屻€?/p>
98銆丮VC鐨勫悇涓儴鍒嗛兘鏈夐偅浜涙妧鏈潵瀹炵幇?濡備綍瀹炵幇? MVC鏄疢odel錛峍iew錛岰ontroller鐨勭畝鍐欍€?Model" 浠h〃鐨勬槸搴旂敤鐨勪笟鍔¢€昏緫錛堥€氳繃JavaBean錛孍JB緇勪歡瀹炵幇錛夛紝 "View" 鏄簲鐢ㄧ殑琛ㄧず闈紙鐢盝SP欏甸潰浜х敓錛夛紝"Controller" 鏄彁渚涘簲鐢ㄧ殑澶勭悊榪囩▼鎺у埗錛堜竴鑸槸涓€涓猄ervlet錛夛紝閫氳繃榪欑璁捐妯″瀷鎶婂簲鐢ㄩ€昏緫錛屽鐞嗚繃紼嬪拰鏄劇ず閫昏緫鍒嗘垚涓嶅悓鐨勭粍浠跺疄鐜般€傝繖浜涚粍浠跺彲浠ヨ繘琛屼氦浜掑拰閲嶇敤銆?/p>
99銆乯ava涓湁鍑犵鏂規硶鍙互瀹炵幇涓€涓嚎紼嬶紵鐢ㄤ粈涔堝叧閿瓧淇グ鍚屾鏂規硶? stop()鍜宻uspend()鏂規硶涓轟綍涓嶆帹鑽愪嬌鐢紵鏈変袱縐嶅疄鐜版柟娉曪紝鍒嗗埆鏄戶鎵縏hread綾諱笌瀹炵幇Runnable鎺ュ彛鐢╯ynchronized鍏抽敭瀛椾慨楗板悓姝ユ柟娉曞弽瀵逛嬌鐢╯top()錛屾槸鍥犱負瀹冧笉瀹夊叏銆傚畠浼氳В闄ょ敱綰跨▼鑾峰彇鐨勬墍鏈夐攣瀹氾紝鑰屼笖濡傛灉瀵硅薄澶勪簬涓€縐嶄笉榪炶瘡鐘舵€侊紝閭d箞鍏朵粬綰跨▼鑳藉湪閭g鐘舵€佷笅媯€鏌ュ拰淇敼瀹冧滑銆傜粨鏋滃緢闅炬鏌ュ嚭鐪熸鐨勯棶棰樻墍鍦ㄣ€俿uspend()鏂規硶瀹規槗鍙戠敓姝婚攣銆傝皟鐢╯uspend()鐨勬椂鍊欙紝鐩爣綰跨▼浼氬仠涓嬫潵錛屼絾鍗翠粛鐒舵寔鏈夊湪榪欎箣鍓嶈幏寰楃殑閿佸畾銆傛鏃訛紝鍏朵粬浠諱綍綰跨▼閮戒笉鑳借闂攣瀹氱殑璧勬簮錛岄櫎闈炶鈥滄寕璧封€濈殑綰跨▼鎭㈠榪愯銆傚浠諱綍綰跨▼鏉ヨ錛屽鏋滃畠浠兂鎭㈠鐩爣綰跨▼錛屽悓鏃跺張璇曞浘浣跨敤浠諱綍涓€涓攣瀹氱殑璧勬簮錛屽氨浼氶€犳垚姝婚攣銆傛墍浠ヤ笉搴旇浣跨敤suspend()錛岃€屽簲鍦ㄨ嚜宸辯殑Thread綾諱腑緗叆涓€涓爣蹇楋紝鎸囧嚭綰跨▼搴旇媧誨姩榪樻槸鎸傝搗銆傝嫢鏍囧織鎸囧嚭綰跨▼搴旇鎸傝搗錛屼究鐢╳ait()鍛藉叾榪涘叆絳夊緟鐘舵€併€傝嫢鏍囧織鎸囧嚭綰跨▼搴斿綋鎭㈠錛屽垯鐢ㄤ竴涓猲otify()閲嶆柊鍚姩綰跨▼銆?/p>
100銆乯ava涓湁鍑犵綾誨瀷鐨勬祦錛烰DK涓烘瘡縐嶇被鍨嬬殑嫻佹彁渚涗簡涓€浜涙娊璞$被浠ヤ緵緇ф壙錛岃璇村嚭浠栦滑鍒嗗埆鏄摢浜涚被錛?br />瀛楄妭嫻侊紝瀛楃嫻併€傚瓧鑺傛祦緇ф壙浜嶪nputStream \ OutputStream錛屽瓧絎︽祦緇ф壙浜嶪nputStreamReader \ OutputStreamWriter銆傚湪java.io鍖呬腑榪樻湁璁稿鍏朵粬鐨勬祦錛屼富瑕佹槸涓轟簡鎻愰珮鎬ц兘鍜屼嬌鐢ㄦ柟渚褲€?br />
101銆乯ava涓細瀛樺湪鍐呭瓨娉勬紡鍚楋紝璇風畝鍗曟弿榪般€備細銆傚錛歩nt i,i2;聽聽聽聽聽聽 return (i-i2);聽聽聽聽聽聽 //when i涓鴻凍澶熷ぇ鐨勬鏁?i2涓鴻凍澶熷ぇ鐨勮礋鏁般€傜粨鏋滀細閫犳垚婧綅錛屽鑷撮敊璇€?/font>
102銆乯ava涓疄鐜板鎬佺殑鏈哄埗鏄粈涔堬紵鏂規硶鐨勯噸鍐橭verriding鍜岄噸杞絆verloading鏄疛ava澶氭€佹€х殑涓嶅悓琛ㄧ幇銆傞噸鍐橭verriding鏄埗綾諱笌瀛愮被涔嬮棿澶氭€佹€х殑涓€縐嶈〃鐜幫紝閲嶈澆Overloading鏄竴涓被涓鎬佹€х殑涓€縐嶈〃鐜般€?/font>
103銆佸瀮鍦懼洖鏀跺櫒鐨勫熀鏈師鐞嗘槸浠€涔堬紵鍨冨溇鍥炴敹鍣ㄥ彲浠ラ┈涓婂洖鏀跺唴瀛樺悧錛熸湁浠€涔堝姙娉曚富鍔ㄩ€氱煡铏氭嫙鏈鴻繘琛屽瀮鍦懼洖鏀訛紵瀵逛簬GC鏉ヨ錛屽綋紼嬪簭鍛樺垱寤哄璞℃椂錛孏C灝卞紑濮嬬洃鎺ц繖涓璞$殑鍦板潃銆佸ぇ灝忎互鍙婁嬌鐢ㄦ儏鍐點€傞€氬父錛孏C閲囩敤鏈夊悜鍥劇殑鏂瑰紡璁板綍鍜岀鐞嗗爢(heap)涓殑鎵€鏈夊璞°€傞€氳繃榪欑鏂瑰紡紜畾鍝簺瀵硅薄鏄?鍙揪鐨?錛屽摢浜涘璞℃槸"涓嶅彲杈劇殑"銆傚綋GC紜畾涓€浜涘璞′負"涓嶅彲杈?鏃訛紝GC灝辨湁璐d換鍥炴敹榪欎簺鍐呭瓨絀洪棿銆傚彲浠ャ€傜▼搴忓憳鍙互鎵嬪姩鎵цSystem.gc()錛岄€氱煡GC榪愯錛屼絾鏄疛ava璇█瑙勮寖騫朵笉淇濊瘉GC涓€瀹氫細鎵ц銆?/font>
104銆侀潤鎬佸彉閲忓拰瀹炰緥鍙橀噺鐨勫尯鍒紵static i = 10; //甯擱噺錛?class A a;聽聽聽聽聽聽 a.i =10;//鍙彉
105銆佷粈涔堟槸java搴忓垪鍖栵紝濡備綍瀹炵幇java搴忓垪鍖栵紵
搴忓垪鍖栧氨鏄竴縐嶇敤鏉ュ鐞嗗璞℃祦鐨勬満鍒訛紝鎵€璋撳璞℃祦涔熷氨鏄皢瀵硅薄鐨勫唴瀹硅繘琛屾祦鍖栥€傚彲浠ュ嫻佸寲鍚庣殑瀵硅薄榪涜璇誨啓鎿嶄綔錛屼篃鍙皢嫻佸寲鍚庣殑瀵硅薄浼犺緭浜庣綉緇滀箣闂淬€傚簭鍒楀寲鏄負浜嗚В鍐沖湪瀵瑰璞℃祦榪涜璇誨啓鎿嶄綔鏃舵墍寮曞彂鐨勯棶棰樸€傚簭鍒楀寲鐨勫疄鐜幫細灝嗛渶瑕佽搴忓垪鍖栫殑綾誨疄鐜癝erializable鎺ュ彛錛岃鎺ュ彛娌℃湁闇€瑕佸疄鐜扮殑鏂規硶錛宨mplements Serializable鍙槸涓轟簡鏍囨敞璇ュ璞℃槸鍙搴忓垪鍖栫殑錛岀劧鍚庝嬌鐢ㄤ竴涓緭鍑烘祦(濡傦細FileOutputStream)鏉ユ瀯閫犱竴涓狾bjectOutputStream(瀵硅薄嫻?瀵硅薄錛屾帴鐫€錛屼嬌鐢∣bjectOutputStream瀵硅薄鐨剋riteObject(Object obj)鏂規硶灝卞彲浠ュ皢鍙傛暟涓簅bj鐨勫璞″啓鍑?鍗充繚瀛樺叾鐘舵€?錛岃鎭㈠鐨勮瘽鍒欑敤杈撳叆嫻併€?/font>
106銆佹槸鍚﹀彲浠ヤ粠涓€涓猻tatic鏂規硶鍐呴儴鍙戝嚭瀵歸潪static鏂規硶鐨勮皟鐢紵涓嶅彲浠?濡傛灉鍏朵腑鍖呭惈瀵硅薄鐨刴ethod()錛涗笉鑳戒繚璇佸璞″垵濮嬪寲.
107銆佸啓clone()鏂規硶鏃訛紝閫氬父閮芥湁涓€琛屼唬鐮侊紝鏄粈涔堬紵Clone 鏈夌己鐪佽涓猴紝super.clone();浠栬礋璐d駭鐢熸紜ぇ灝忕殑絀洪棿錛屽茍閫愪綅澶嶅埗銆?/font>
108銆佸湪JAVA涓紝濡備綍璺沖嚭褰撳墠鐨勫閲嶅祵濂楀驚鐜紵鐢╞reak; return 鏂規硶銆?/font>
109銆丩ist銆丮ap銆丼et涓変釜鎺ュ彛錛屽瓨鍙栧厓绱犳椂錛屽悇鏈変粈涔堢壒鐐癸紵List 浠ョ壒瀹氭搴忔潵鎸佹湁鍏冪礌錛屽彲鏈夐噸澶嶅厓绱犮€係et 鏃犳硶鎷ユ湁閲嶅鍏冪礌,鍐呴儴鎺掑簭銆侻ap 淇濆瓨key-value鍊鹼紝value鍙鍊箋€?/font>
110銆丣2EE鏄粈涔堬紵J2EE鏄疭un鍏徃鎻愬嚭鐨勫灞?multi-diered),鍒嗗竷寮?distributed),鍩轟簬緇勪歡(component-base)鐨勪紒涓氱駭搴旂敤妯″瀷(enterpriese application model).鍦ㄨ繖鏍風殑涓€涓簲鐢ㄧ郴緇熶腑錛屽彲鎸夌収鍔熻兘鍒掑垎涓轟笉鍚岀殑緇勪歡錛岃繖浜涚粍浠跺張鍙湪涓嶅悓璁$畻鏈轟笂錛屽茍涓斿浜庣浉搴旂殑灞傛(tier)涓€傛墍灞炲眰嬈″寘鎷鎴峰眰(clietn tier)緇勪歡,web灞傚拰緇勪歡,Business灞傚拰緇勪歡,浼佷笟淇℃伅緋葷粺(EIS)灞傘€?/font>
111銆乁ML鏂歸潰鏍囧噯寤烘ā璇█UML銆傜敤渚嬪浘,闈欐€佸浘(鍖呮嫭綾誨浘銆佸璞″浘鍜屽寘鍥?,琛屼負鍥?浜や簰鍥?欏哄簭鍥?鍚堜綔鍥?,瀹炵幇鍥俱€?/font>
112銆佽鍑轟竴浜涘父鐢ㄧ殑綾伙紝鍖咃紝鎺ュ彛錛岃鍚勪婦5涓父鐢ㄧ殑綾伙細BufferedReader聽聽聽聽聽聽 BufferedWriter聽聽聽聽聽聽 FileReader聽聽聽聽聽聽 FileWirter聽聽聽聽聽聽 String聽聽聽聽聽聽 Integer錛涘父鐢ㄧ殑鍖咃細java.lang聽聽聽聽聽聽 java.awt聽聽聽聽聽聽 java.io聽聽聽聽聽聽 java.util聽聽聽聽聽聽 java.sql錛涘父鐢ㄧ殑鎺ュ彛錛歊emote聽聽聽聽聽聽 List聽聽聽聽聽聽 Map聽聽聽聽聽聽 Document聽聽聽聽聽聽 NodeList
113銆佸紑鍙戜腑閮界敤鍒頒簡閭d簺璁捐妯″紡?鐢ㄥ湪浠€涔堝満鍚? 姣忎釜妯″紡閮芥弿榪頒簡涓€涓湪鎴戜滑鐨勭幆澧冧腑涓嶆柇鍑虹幇鐨勯棶棰橈紝鐒跺悗鎻忚堪浜嗚闂鐨勮В鍐蟲柟妗堢殑鏍稿績銆傞€氳繃榪欑鏂瑰紡錛屼綘鍙互鏃犳暟嬈″湴浣跨敤閭d簺宸叉湁鐨勮В鍐蟲柟妗堬紝鏃犻渶鍦ㄩ噸澶嶇浉鍚岀殑宸ヤ綔銆備富瑕佺敤鍒頒簡MVC鐨勮璁℃ā寮忋€傜敤鏉ュ紑鍙慗SP/Servlet鎴栬€匤2EE鐨勭浉鍏沖簲鐢ㄣ€傜畝鍗曞伐鍘傛ā寮忕瓑銆?/font>
114銆乯sp鏈夊摢浜涘姩浣?浣滅敤鍒嗗埆鏄粈涔? JSP鍏辨湁浠ヤ笅6縐嶅熀鏈姩浣?jsp:include錛氬湪欏甸潰琚姹傜殑鏃跺€欏紩鍏ヤ竴涓枃浠躲€?jsp:useBean錛氬鎵炬垨鑰呭疄渚嬪寲涓€涓狫avaBean銆?jsp:setProperty錛氳緗甁avaBean鐨勫睘鎬с€?jsp:getProperty錛氳緭鍑烘煇涓狫avaBean鐨勫睘鎬с€?jsp:forward錛氭妸璇鋒眰杞埌涓€涓柊鐨勯〉闈€€?jsp:plugin錛氭牴鎹祻瑙堝櫒綾誨瀷涓篔ava鎻掍歡鐢熸垚OBJECT鎴朎MBED鏍囪銆?/font>
115銆丄nonymous Inner Class (鍖垮悕鍐呴儴綾? 鏄惁鍙互extends(緇ф壙)鍏跺畠綾伙紝鏄惁鍙互implements(瀹炵幇)interface(鎺ュ彛)? 鍙互緇ф壙鍏朵粬綾繪垨瀹屾垚鍏朵粬鎺ュ彛錛屽湪swing緙栫▼涓父鐢ㄦ鏂瑰紡銆?/font>
116銆佸簲鐢ㄦ湇鍔″櫒涓嶹EB SERVER鐨勫尯鍒紵搴旂敤鏈嶅姟鍣細Weblogic銆乀omcat銆丣boss錛?WEB SERVER錛欼IS銆?Apache
117銆丅S涓嶤S鐨勮仈緋諱笌鍖哄埆銆?br />C/S鏄疌lient/Server鐨勭緝鍐欍€傛湇鍔″櫒閫氬父閲囩敤楂樻€ц兘鐨凱C銆佸伐浣滅珯鎴栧皬鍨嬫満錛屽茍閲囩敤澶у瀷鏁版嵁搴撶郴緇燂紝濡侽racle銆丼ybase銆両nformix鎴?SQL Server銆傚鎴風闇€瑕佸畨瑁呬笓鐢ㄧ殑瀹㈡埛绔蔣浠躲€?br />B/錛蟲槸Brower/Server鐨勭緝鍐欙紝瀹㈡埛鏈轟笂鍙瀹夎涓€涓祻瑙堝櫒錛圔rowser錛夛紝濡侼etscape Navigator鎴朓nternet Explorer錛屾湇鍔″櫒瀹夎Oracle銆丼ybase銆両nformix鎴?SQL Server絳夋暟鎹簱銆傚湪榪欑緇撴瀯涓嬶紝鐢ㄦ埛鐣岄潰瀹屽叏閫氳繃WWW嫻忚鍣ㄥ疄鐜幫紝涓€閮ㄥ垎浜嬪姟閫昏緫鍦ㄥ墠绔疄鐜幫紝浣嗘槸涓昏浜嬪姟閫昏緫鍦ㄦ湇鍔″櫒绔疄鐜般€傛祻瑙堝櫒閫氳繃錛積b Server 鍚屾暟鎹簱榪涜鏁版嵁浜や簰銆?br />C/S 涓?B/S 鍖哄埆錛?br />錛戯紟紜歡鐜涓嶅悓: C/S 涓€鑸緩绔嬪湪涓撶敤鐨勭綉緇滀笂, 灝忚寖鍥撮噷鐨勭綉緇滅幆澧? 灞€鍩熺綉涔嬮棿鍐嶉€氳繃涓撻棬鏈嶅姟鍣ㄦ彁渚涜繛鎺ュ拰鏁版嵁浜ゆ崲鏈嶅姟錛涖€€B/S 寤虹珛鍦ㄥ箍鍩熺綉涔嬩笂鐨? 涓嶅繀鏄笓闂ㄧ殑緗戠粶紜歡鐜,渚嬩笌鐢佃瘽涓婄綉, 縐熺敤璁懼. 淇℃伅鑷繁綆$悊. 鏈夋瘮C/S鏇村己鐨勯€傚簲鑼冨洿, 涓€鑸彧瑕佹湁鎿嶄綔緋葷粺鍜屾祻瑙堝櫒灝辮
錛掞紟瀵瑰畨鍏ㄨ姹備笉鍚?錛欳/S 涓€鑸潰鍚戠浉瀵瑰浐瀹氱殑鐢ㄦ埛緹? 瀵逛俊鎭畨鍏ㄧ殑鎺у埗鑳藉姏寰堝己. 涓€鑸珮搴︽満瀵嗙殑淇℃伅緋葷粺閲囩敤C/S 緇撴瀯閫傚疁. 鍙互閫氳繃B/S鍙戝竷閮ㄥ垎鍙叕寮€淇℃伅.B/S 寤虹珛鍦ㄥ箍鍩熺綉涔嬩笂, 瀵瑰畨鍏ㄧ殑鎺у埗鑳藉姏鐩稿寮? 鍙兘闈㈠悜涓嶅彲鐭ョ殑鐢ㄦ埛銆?br />錛擄紟瀵圭▼搴忔灦鏋勪笉鍚?錛氥€€C/S 紼嬪簭鍙互鏇村姞娉ㄩ噸嫻佺▼, 鍙互瀵規潈闄愬灞傛鏍¢獙, 瀵圭郴緇熻繍琛岄€熷害鍙互杈冨皯鑰冭檻.銆€B/S 瀵瑰畨鍏ㄤ互鍙婅闂€熷害鐨勫閲嶇殑鑰冭檻, 寤虹珛鍦ㄩ渶瑕佹洿鍔犱紭鍖栫殑鍩虹涔嬩笂. 姣擟/S鏈夋洿楂樼殑瑕佹眰 B/S緇撴瀯鐨勭▼搴忔灦鏋勬槸鍙戝睍鐨勮秼鍔? 浠嶮S鐨?Net緋誨垪鐨凚izTalk 2000 Exchange 2000絳? 鍏ㄩ潰鏀寔緗戠粶鐨勬瀯浠舵惌寤虹殑緋葷粺. SUN 鍜孖BM鎺ㄧ殑JavaBean 鏋勪歡鎶€鏈瓑,浣?B/S鏇村姞鎴愮啛.
錛旓紟杞歡閲嶇敤涓嶅悓錛?C/S 紼嬪簭鍙互涓嶅彲閬垮厤鐨勬暣浣撴€ц€冭檻, 鏋勪歡鐨勯噸鐢ㄦ€т笉濡傚湪B/S瑕佹眰涓嬬殑鏋勪歡鐨勯噸鐢ㄦ€уソ.銆€B/S 瀵圭殑澶氶噸緇撴瀯,瑕佹眰鏋勪歡鐩稿鐙珛鐨勫姛鑳? 鑳藉鐩稿杈冨ソ鐨勯噸鐢?灝卞叆涔版潵鐨勯妗屽彲浠ュ啀鍒╃敤,鑰屼笉鏄仛鍦ㄥ涓婄殑鐭沖ご妗屽瓙銆?br />錛曪紟緋葷粺緇存姢涓嶅悓聽聽聽聽聽聽 錛欳/S 紼嬪簭鐢變簬鏁翠綋鎬? 蹇呴』鏁翠綋鑰冨療, 澶勭悊鍑虹幇鐨勯棶棰樹互鍙婄郴緇熷崌綰? 鍗囩駭闅? 鍙兘鏄啀鍋氫竴涓叏鏂扮殑緋葷粺錛屻€€B/S 鏋勪歡緇勬垚,鏂歸潰鏋勪歡涓埆鐨勬洿鎹?瀹炵幇緋葷粺鐨勬棤緙濆崌綰? 緋葷粺緇存姢寮€閿€鍑忓埌鏈€灝?鐢ㄦ埛浠庣綉涓婅嚜宸變笅杞藉畨瑁呭氨鍙互瀹炵幇鍗囩駭.
錛栵紟澶勭悊闂涓嶅悓 錛欳/S 紼嬪簭鍙互澶勭悊鐢ㄦ埛闈㈠浐瀹? 騫朵笖鍦ㄧ浉鍚屽尯鍩? 瀹夊叏瑕佹眰楂橀渶姹? 涓庢搷浣滅郴緇熺浉鍏? 搴旇閮芥槸鐩稿悓鐨勭郴緇燂紝B/S 寤虹珛鍦ㄥ箍鍩熺綉涓? 闈㈠悜涓嶅悓鐨勭敤鎴風兢, 鍒嗘暎鍦板煙, 榪欐槸C/S鏃犳硶浣滃埌鐨? 涓庢搷浣滅郴緇熷鉤鍙板叧緋繪渶灝?
錛楋紟鐢ㄦ埛鎺ュ彛涓嶅悓錛?C/S 澶氭槸寤虹珛鐨刉indow騫沖彴涓?琛ㄧ幇鏂規硶鏈夐檺,瀵圭▼搴忓憳鏅亶瑕佹眰杈冮珮錛孊/S 寤虹珛鍦ㄦ祻瑙堝櫒涓? 鏈夋洿鍔犱赴瀵屽拰鐢熷姩鐨勮〃鐜版柟寮忎笌鐢ㄦ埛浜ゆ祦. 騫朵笖澶ч儴鍒嗛毦搴﹀噺浣?鍑忎綆寮€鍙戞垚鏈?
錛橈紟淇℃伅嫻佷笉鍚?錛氥€€C/S 紼嬪簭涓€鑸槸鍏稿瀷鐨勪腑澶泦鏉冪殑鏈烘寮忓鐞? 浜や簰鎬х浉瀵逛綆錛孊/S 淇℃伅嫻佸悜鍙彉鍖? B-B B-C B-G絳変俊鎭€佹祦鍚戠殑鍙樺寲, 鏇村儚浜ゆ槗涓績銆?br />聽
聽
聽
JAVA緙栫▼棰?br />1錛庣幇鍦ㄨ緭鍏涓暟瀛楋紝浠ラ€楀彿錛屽垎寮€錛涚劧鍚庡彲閫夋嫨鍗囨垨鑰呴檷搴忔帓搴忥紱鎸夋彁浜ら敭灝卞湪鍙︿竴欏甸潰鏄劇ず鎸変粈涔堟帓搴忥紝緇撴灉涓猴紝鎻愪緵reset
import java.util.*;
public class bycomma{
public static String[] splitStringByComma(String source){
if(source==null||source.trim().equals(""))
return null;
StringTokenizer commaToker = new StringTokenizer(source,",");
String[] result = new String[commaToker.countTokens()];
int i=0;
while(commaToker.hasMoreTokens()){
result[i] = commaToker.nextToken();
i++;
}
return result;
}
public static void main(String args[]){
String[] s = splitStringByComma("5,8,7,4,3,9,1");
int[] ii = new int[s.length];
for(int i = 0;i<s.length;i++){
ii[i] =Integer.parseInt(s[i]);
}
Arrays.sort(ii);
//asc
for(int i=0;i<s.length;i++){
System.out.println(ii[i]);
}
//desc
for(int i=(s.length-1);i>=0;i--){
System.out.println(ii[i]);
}
}
}
2錛庨噾棰濊漿鎹紝闃挎媺浼暟瀛楃殑閲戦杞崲鎴愪腑鍥戒紶緇熺殑褰㈠紡濡傦細錛堬駿1011錛夛紞>錛堜竴鍗冮浂涓€鎷句竴鍏冩暣錛夎緭鍑恒€?br />package test.format;
import java.text.NumberFormat;
import java.util.HashMap;
public class SimpleMoneyFormat {
public static final String EMPTY = "";
public static final String ZERO = "闆?;
public static final String ONE = "澹?;
public static final String TWO = "璐?;
public static final String THREE = "鍙?;
public static final String FOUR = "鑲?;
public static final String FIVE = "浼?;
public static final String SIX = "闄?;
public static final String SEVEN = "鏌?;
public static final String EIGHT = "鎹?;
public static final String NINE = "鐜?;
public static final String TEN = "鎷?;
public static final String HUNDRED = "浣?;
public static final String THOUSAND = "浠?;
public static final String TEN_THOUSAND = "涓?;
public static final String HUNDRED_MILLION = "浜?;
public static final String YUAN = "鍏?;
public static final String JIAO = "瑙?;
public static final String FEN = "鍒?;
public static final String DOT = ".";
private static SimpleMoneyFormat formatter = null;
private HashMap chineseNumberMap = new HashMap();
private HashMap chineseMoneyPattern = new HashMap();
private NumberFormat numberFormat = NumberFormat.getInstance();
private SimpleMoneyFormat() {
numberFormat.setMaximumFractionDigits(4);
numberFormat.setMinimumFractionDigits(2);
numberFormat.setGroupingUsed(false);
chineseNumberMap.put("0", ZERO);
chineseNumberMap.put("1", ONE);
chineseNumberMap.put("2", TWO);
chineseNumberMap.put("3", THREE);
chineseNumberMap.put("4", FOUR);
chineseNumberMap.put("5", FIVE);
chineseNumberMap.put("6", SIX);
chineseNumberMap.put("7", SEVEN);
chineseNumberMap.put("8", EIGHT);
chineseNumberMap.put("9", NINE);
chineseNumberMap.put(DOT, DOT);
chineseMoneyPattern.put("1", TEN);
chineseMoneyPattern.put("2", HUNDRED);
chineseMoneyPattern.put("3", THOUSAND);
chineseMoneyPattern.put("4", TEN_THOUSAND);
chineseMoneyPattern.put("5", TEN);
chineseMoneyPattern.put("6", HUNDRED);
chineseMoneyPattern.put("7", THOUSAND);
chineseMoneyPattern.put("8", HUNDRED_MILLION);
}
public static SimpleMoneyFormat getInstance() {
if (formatter == null)
formatter = new SimpleMoneyFormat();
return formatter;
}
public String format(String moneyStr) {
checkPrecision(moneyStr);
String result;
result = convertToChineseNumber(moneyStr);
result = addUnitsToChineseMoneyString(result);
return result;
}
public String format(double moneyDouble) {
return format(numberFormat.format(moneyDouble));
}
public String format(int moneyInt) {
return format(numberFormat.format(moneyInt));
}
public String format(long moneyLong) {
return format(numberFormat.format(moneyLong));
}
public String format(Number moneyNum) {
return format(numberFormat.format(moneyNum));
}
private String convertToChineseNumber(String moneyStr) {
String result;
StringBuffer cMoneyStringBuffer = new StringBuffer();
for (int i = 0; i < moneyStr.length(); i++) {
cMoneyStringBuffer.append(chineseNumberMap.get(moneyStr.substring(i, i + 1)));
}
//鎷句槳浠熶竾浜跨瓑閮芥槸姹夊瓧閲岄潰鎵嶆湁鐨勫崟浣嶏紝鍔犱笂瀹冧滑
int indexOfDot = cMoneyStringBuffer.indexOf(DOT);
int moneyPatternCursor = 1;
for (int i = indexOfDot - 1; i > 0; i--) {
cMoneyStringBuffer.insert(i, chineseMoneyPattern.get(EMPTY + moneyPatternCursor));
moneyPatternCursor = moneyPatternCursor == 8 ? 1 : moneyPatternCursor + 1;
}
String fractionPart = cMoneyStringBuffer.substring(cMoneyStringBuffer.indexOf("."));
cMoneyStringBuffer.delete(cMoneyStringBuffer.indexOf("."), cMoneyStringBuffer.length());
while (cMoneyStringBuffer.indexOf("闆舵嬀") != -1) {
cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf("闆舵嬀"), cMoneyStringBuffer.indexOf("闆舵嬀") + 2, ZERO);
}
while (cMoneyStringBuffer.indexOf("闆朵槳") != -1) {
cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf("闆朵槳"), cMoneyStringBuffer.indexOf("闆朵槳") + 2, ZERO);
}
while (cMoneyStringBuffer.indexOf("闆朵粺") != -1) {
cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf("闆朵粺"), cMoneyStringBuffer.indexOf("闆朵粺") + 2, ZERO);
}
while (cMoneyStringBuffer.indexOf("闆朵竾") != -1) {
cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf("闆朵竾"), cMoneyStringBuffer.indexOf("闆朵竾") + 2, TEN_THOUSAND);
}
while (cMoneyStringBuffer.indexOf("闆朵嚎") != -1) {
cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf("闆朵嚎"), cMoneyStringBuffer.indexOf("闆朵嚎") + 2, HUNDRED_MILLION);
}
while (cMoneyStringBuffer.indexOf("闆墮浂") != -1) {
cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf("闆墮浂"), cMoneyStringBuffer.indexOf("闆墮浂") + 2, ZERO);
}
if (cMoneyStringBuffer.lastIndexOf(ZERO) == cMoneyStringBuffer.length() - 1)
cMoneyStringBuffer.delete(cMoneyStringBuffer.length() - 1, cMoneyStringBuffer.length());
cMoneyStringBuffer.append(fractionPart);
result = cMoneyStringBuffer.toString();
return result;
}
private String addUnitsToChineseMoneyString(String moneyStr) {
String result;
StringBuffer cMoneyStringBuffer = new StringBuffer(moneyStr);
int indexOfDot = cMoneyStringBuffer.indexOf(DOT);
cMoneyStringBuffer.replace(indexOfDot, indexOfDot + 1, YUAN);
絎簩錛孉nonymous Inner Class (鍖垮悕鍐呴儴綾? 鏄惁鍙互extends(緇ф壙)鍏跺畠綾伙紝鏄惁鍙互implements(瀹炵幇)interface(鎺ュ彛)?
絎笁錛孲tatic Nested Class 鍜?Inner Class鐨勪笉鍚岋紝璇村緱瓚婂瓚婂ソ(闈㈣瘯棰樻湁鐨勫緢絎肩粺)銆?/font>
絎洓錛?amp;鍜?amp;&鐨勫尯鍒€?/font>
絎簲錛孒ashMap鍜孒ashtable鐨勫尯鍒€?/font>
絎叚錛孋ollection 鍜?Collections鐨勫尯鍒€?/font>
絎竷錛屼粈涔堟椂鍊欑敤assert銆?/font>
絎叓錛孏C鏄粈涔? 涓轟粈涔堣鏈塆C?
絎節錛孲tring s = new String("xyz");鍒涘緩浜嗗嚑涓猄tring Object?
絎崄錛孧ath.round(11.5)絳夋柤澶氬皯? Math.round(-11.5)絳夋柤澶氬皯?
絎崄涓€錛宻hort s1 = 1; s1 = s1 + 1;鏈変粈涔堥敊? short s1 = 1; s1 += 1;鏈変粈涔堥敊?
絎崄浜岋紝sleep() 鍜?wait() 鏈変粈涔堝尯鍒?
絎崄涓夛紝Java鏈夋病鏈塯oto?
絎崄鍥涳紝鏁扮粍鏈夋病鏈塴ength()榪欎釜鏂規硶? String鏈夋病鏈塴ength()榪欎釜鏂規硶?
絎崄浜旓紝Overload鍜孫verride鐨勫尯鍒€侽verloaded鐨勬柟娉曟槸鍚﹀彲浠ユ敼鍙樿繑鍥炲€肩殑綾誨瀷?
絎崄鍏紝Set閲岀殑鍏冪礌鏄笉鑳介噸澶嶇殑錛岄偅涔堢敤浠€涔堟柟娉曟潵鍖哄垎閲嶅涓庡惁鍛? 鏄敤==榪樻槸equals()? 瀹冧滑鏈変綍鍖哄埆?
絎崄涓冿紝緇欐垜涓€涓綘鏈€甯歌鍒扮殑runtime exception銆?/font>
絎崄鍏紝error鍜宔xception鏈変粈涔堝尯鍒?
絎崄涔濓紝List, Set, Map鏄惁緇ф壙鑷狢ollection鎺ュ彛?
絎簩鍗侊紝abstract class鍜宨nterface鏈変粈涔堝尯鍒?
絎簩鍗佷竴錛宎bstract鐨刴ethod鏄惁鍙悓鏃舵槸static,鏄惁鍙悓鏃舵槸native錛屾槸鍚﹀彲鍚屾椂鏄痵ynchronized?
絎簩鍗佷簩錛屾帴鍙f槸鍚﹀彲緇ф壙鎺ュ彛? 鎶借薄綾繪槸鍚﹀彲瀹炵幇(implements)鎺ュ彛? 鎶借薄綾繪槸鍚﹀彲緇ф壙瀹炰綋綾?concrete class)?
絎簩鍗佷笁錛屽惎鍔ㄤ竴涓嚎紼嬫槸鐢╮un()榪樻槸start()?
絎簩鍗佸洓錛屾瀯閫犲櫒Constructor鏄惁鍙override?
絎簩鍗佷簲錛屾槸鍚﹀彲浠ョ戶鎵縎tring綾?
絎簩鍗佸叚錛屽綋涓€涓嚎紼嬭繘鍏ヤ竴涓璞$殑涓€涓猻ynchronized鏂規硶鍚庯紝鍏跺畠綰跨▼鏄惁鍙繘鍏ユ瀵硅薄鐨勫叾瀹冩柟娉?
絎簩鍗佷竷錛宼ry {}閲屾湁涓€涓猺eturn璇彞錛岄偅涔堢揣璺熷湪榪欎釜try鍚庣殑finally {}閲岀殑code浼氫笉浼氳鎵ц錛屼粈涔堟椂鍊欒鎵ц錛屽湪return鍓嶈繕鏄悗?
絎簩鍗佸叓錛岀紪紼嬮: 鐢ㄦ渶鏈夋晥鐜囩殑鏂規硶綆楀嚭2涔樹互8絳夋柤鍑?
絎簩鍗佷節錛屼袱涓璞″€肩浉鍚?x.equals(y) == true)錛屼絾鍗村彲鏈変笉鍚岀殑hash code錛岃繖鍙ヨ瘽瀵逛笉瀵?
絎笁鍗侊紝褰撲竴涓璞¤褰撲綔鍙傛暟浼犻€掑埌涓€涓柟娉曞悗錛屾鏂規硶鍙敼鍙樿繖涓璞$殑灞炴€э紝騫跺彲榪斿洖鍙樺寲鍚庣殑緇撴灉錛岄偅涔堣繖閲屽埌搴曟槸鍊間紶閫掕繕鏄紩鐢ㄤ紶閫?
絎笁鍗佷竴錛宻wtich鏄惁鑳戒綔鐢ㄥ湪byte涓婏紝鏄惁鑳戒綔鐢ㄥ湪long涓婏紝鏄惁鑳戒綔鐢ㄥ湪String涓?
絎笁鍗佷簩錛岀紪紼嬮: 鍐欎竴涓猄ingleton鍑烘潵銆?br />
浠ヤ笅鏄瓟妗?br />
絎竴錛岃皥璋坒inal, finally, finalize鐨勫尯鍒€?br />final鈥斾慨楗扮錛堝叧閿瓧錛夊鏋滀竴涓被琚0鏄庝負final錛屾剰鍛崇潃瀹冧笉鑳藉啀媧劇敓鍑烘柊鐨勫瓙綾伙紝涓嶈兘浣滀負鐖剁被琚戶鎵褲€傚洜姝や竴涓被涓嶈兘鏃㈣澹版槑涓?abstract鐨勶紝鍙堣澹版槑涓篺inal鐨勩€傚皢鍙橀噺鎴栨柟娉曞0鏄庝負final錛屽彲浠ヤ繚璇佸畠浠湪浣跨敤涓笉琚敼鍙樸€傝澹版槑涓篺inal鐨勫彉閲忓繀欏誨湪澹版槑鏃剁粰瀹氬垵鍊鹼紝鑰屽湪浠ュ悗鐨勫紩鐢ㄤ腑鍙兘璇誨彇錛屼笉鍙慨鏀廣€傝澹版槑涓篺inal鐨勬柟娉曚篃鍚屾牱鍙兘浣跨敤錛屼笉鑳介噸杞?br />finally鈥斿啀寮傚父澶勭悊鏃舵彁渚?finally 鍧楁潵鎵ц浠諱綍娓呴櫎鎿嶄綔銆傚鏋滄姏鍑轟竴涓紓甯革紝閭d箞鐩稿尮閰嶇殑 catch 瀛愬彞灝變細鎵ц錛岀劧鍚庢帶鍒跺氨浼氳繘鍏?finally 鍧楋紙濡傛灉鏈夌殑璇濓級銆?br />finalize鈥旀柟娉曞悕銆侸ava 鎶€鏈厑璁鎬嬌鐢?finalize() 鏂規硶鍦ㄥ瀮鍦炬敹闆嗗櫒灝嗗璞′粠鍐呭瓨涓竻闄ゅ嚭鍘諱箣鍓嶅仛蹇呰鐨勬竻鐞嗗伐浣溿€傝繖涓柟娉曟槸鐢卞瀮鍦炬敹闆嗗櫒鍦ㄧ‘瀹氳繖涓璞℃病鏈夎寮曠敤鏃跺榪欎釜瀵硅薄璋冪敤鐨勩€傚畠鏄湪 Object 綾諱腑瀹氫箟鐨勶紝鍥犳鎵€鏈夌殑綾婚兘緇ф壙浜嗗畠銆傚瓙綾昏鐩?finalize() 鏂規硶浠ユ暣鐞嗙郴緇熻祫婧愭垨鑰呮墽琛屽叾浠栨竻鐞嗗伐浣溿€俧inalize() 鏂規硶鏄湪鍨冨溇鏀墮泦鍣ㄥ垹闄ゅ璞′箣鍓嶅榪欎釜瀵硅薄璋冪敤鐨勩€?/font>
絎簩錛孉nonymous Inner Class (鍖垮悕鍐呴儴綾? 鏄惁鍙互extends(緇ф壙)鍏跺畠綾伙紝鏄惁鍙互implements(瀹炵幇)interface(鎺ュ彛)?
鍖垮悕鐨勫唴閮ㄧ被鏄病鏈夊悕瀛楃殑鍐呴儴綾匯€備笉鑳絜xtends(緇ф壙) 鍏跺畠綾伙紝浣嗕竴涓唴閮ㄧ被鍙互浣滀負涓€涓帴鍙o紝鐢卞彟涓€涓唴閮ㄧ被瀹炵幇銆?/font>
絎笁錛孲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;&鏄竷灝旈€昏緫榪愮畻絎︺€?/font>
絎簲錛孒ashMap鍜孒ashtable鐨勫尯鍒€?br />閮藉睘浜嶮ap鎺ュ彛鐨勭被錛屽疄鐜頒簡灝嗘儫涓€閿槧灝勫埌鐗瑰畾鐨勫€間笂銆?br />HashMap 綾繪病鏈夊垎綾繪垨鑰呮帓搴忋€傚畠鍏佽涓€涓?null 閿拰澶氫釜 null 鍊箋€?
Hashtable 綾諱技浜?HashMap錛屼絾鏄笉鍏佽 null 閿拰 null 鍊箋€傚畠涔熸瘮 HashMap 鎱紝鍥犱負瀹冩槸鍚屾鐨勩€?/font>
絎叚錛孋ollection 鍜?Collections鐨勫尯鍒€?br />Collections鏄釜java.util涓嬬殑綾伙紝瀹冨寘鍚湁鍚勭鏈夊叧闆嗗悎鎿嶄綔鐨勯潤鎬佹柟娉曘€?br />Collection鏄釜java.util涓嬬殑鎺ュ彛錛屽畠鏄悇縐嶉泦鍚堢粨鏋勭殑鐖舵帴鍙c€?/font>
絎竷錛屼粈涔堟椂鍊欑敤assert銆?br />鏂█鏄竴涓寘鍚竷灝旇〃杈懼紡鐨勮鍙ワ紝鍦ㄦ墽琛岃繖涓鍙ユ椂鍋囧畾璇ヨ〃杈懼紡涓?true銆傚鏋滆〃杈懼紡璁$畻涓?false錛岄偅涔堢郴緇熶細鎶ュ憡涓€涓?AssertionError銆傚畠鐢ㄤ簬璋冭瘯鐩殑錛?
聽 assert(a > 0); // throws an AssertionError if a <= 0
鏂█鍙互鏈変袱縐嶅艦寮忥細聽聽聽聽
聽 assert Expression1 ;
聽 assert Expression1 : Expression2 ;
Expression1 搴旇鎬繪槸浜х敓涓€涓竷灝斿€箋€?
Expression2 鍙互鏄緱鍑轟竴涓€肩殑浠繪剰琛ㄨ揪寮忋€傝繖涓€肩敤浜庣敓鎴愭樉紺烘洿澶氳皟璇曚俊鎭殑 String 娑堟伅銆?br />鏂█鍦ㄩ粯璁ゆ儏鍐典笅鏄鐢ㄧ殑銆傝鍦ㄧ紪璇戞椂鍚敤鏂█錛岄渶瑕佷嬌鐢?source 1.4 鏍囪錛毬?
聽 javac -source 1.4 Test.java
瑕佸湪榪愯鏃跺惎鐢ㄦ柇璦€錛屽彲浣跨敤 -enableassertions 鎴栬€?-ea 鏍囪銆?
瑕佸湪榪愯鏃墮€夋嫨紱佺敤鏂█錛屽彲浣跨敤 -da 鎴栬€?-disableassertions 鏍囪銆?
瑕佺郴緇熺被涓惎鐢ㄦ柇璦€錛屽彲浣跨敤 -esa 鎴栬€?-dsa 鏍囪銆傝繕鍙互鍦ㄥ寘鐨勫熀紜€涓婂惎鐢ㄦ垨鑰呯鐢ㄦ柇璦€銆?
鍙互鍦ㄩ璁℃甯告儏鍐典笅涓嶄細鍒拌揪鐨勪換浣曚綅緗笂鏀劇疆鏂█銆傛柇璦€鍙互鐢ㄤ簬楠岃瘉浼犻€掔粰縐佹湁鏂規硶鐨勫弬鏁般€備笉榪囷紝鏂█涓嶅簲璇ョ敤浜庨獙璇佷紶閫掔粰鍏湁鏂規硶鐨勫弬鏁幫紝鍥犱負涓嶇鏄惁鍚敤浜嗘柇璦€錛屽叕鏈夋柟娉曢兘蹇呴』媯€鏌ュ叾鍙傛暟銆備笉榪囷紝鏃㈠彲浠ュ湪鍏湁鏂規硶涓紝涔熷彲浠ュ湪闈炲叕鏈夋柟娉曚腑鍒╃敤鏂█嫻嬭瘯鍚庣疆鏉′歡銆傚彟澶栵紝鏂█涓嶅簲璇ヤ互浠諱綍鏂瑰紡鏀瑰彉紼嬪簭鐨勭姸鎬併€?
絎叓錛孏C鏄粈涔? 涓轟粈涔堣鏈塆C? (鍩虹)銆?br />GC鏄瀮鍦炬敹闆嗗櫒銆侸ava 紼嬪簭鍛樹笉鐢ㄦ媴蹇冨唴瀛樼鐞嗭紝鍥犱負鍨冨溇鏀墮泦鍣ㄤ細鑷姩榪涜綆$悊銆傝璇鋒眰鍨冨溇鏀墮泦錛屽彲浠ヨ皟鐢ㄤ笅闈㈢殑鏂規硶涔嬩竴錛?
聽 System.gc()
聽 Runtime.getRuntime().gc()
絎節錛孲tring s = new String("xyz");鍒涘緩浜嗗嚑涓猄tring Object?
涓や釜瀵硅薄錛屼竴涓槸鈥渪yx鈥?涓€涓槸鎸囧悜鈥渪yx鈥濈殑寮曠敤瀵硅薄s銆?/font>
絎崄錛孧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‘銆?/font>
絎崄浜?/font>錛宻leep() 鍜?wait() 鏈変粈涔堝尯鍒? 鎼炵嚎紼嬬殑鏈€鐖?br />sleep()鏂規硶鏄嬌綰跨▼鍋滄涓€孌墊椂闂寸殑鏂規硶銆傚湪sleep 鏃墮棿闂撮殧鏈熸弧鍚庯紝綰跨▼涓嶄竴瀹氱珛鍗蟲仮澶嶆墽琛屻€傝繖鏄洜涓哄湪閭d釜鏃跺埢錛屽叾瀹冪嚎紼嬪彲鑳芥鍦ㄨ繍琛岃€屼笖娌℃湁琚皟搴︿負鏀懼純鎵ц錛岄櫎闈?a)鈥滈啋鏉モ€濈殑綰跨▼鍏鋒湁鏇撮珮鐨勪紭鍏堢駭
(b)姝e湪榪愯鐨勭嚎紼嬪洜涓哄叾瀹冨師鍥犺€岄樆濉炪€?br />wait()鏄嚎紼嬩氦浜掓椂錛屽鏋滅嚎紼嬪涓€涓悓姝ュ璞 鍙戝嚭涓€涓獁ait()璋冪敤錛岃綰跨▼浼氭殏鍋滄墽琛岋紝琚皟瀵硅薄榪涘叆絳夊緟鐘舵€侊紝鐩村埌琚敜閱掓垨絳夊緟鏃墮棿鍒般€?/font>
聽
絎崄涓?/font>錛孞ava鏈夋病鏈塯oto?
Goto鈥攋ava涓殑淇濈暀瀛楋紝鐜板湪娌℃湁鍦╦ava涓嬌鐢ㄣ€?/font>
絎崄鍥?/font>錛屾暟緇勬湁娌℃湁length()榪欎釜鏂規硶? String鏈夋病鏈塴ength()榪欎釜鏂規硶錛?br />鏁扮粍娌℃湁length()榪欎釜鏂規硶錛屾湁length鐨勫睘鎬с€?br />String鏈夋湁length()榪欎釜鏂規硶銆?/font>
絎崄浜?/font>錛孫verload鍜孫verride鐨勫尯鍒€侽verloaded鐨勬柟娉曟槸鍚﹀彲浠ユ敼鍙樿繑鍥炲€肩殑綾誨瀷?
鏂規硶鐨勯噸鍐橭verriding鍜岄噸杞絆verloading鏄疛ava澶氭€佹€х殑涓嶅悓琛ㄧ幇銆傞噸鍐橭verriding鏄埗綾諱笌瀛愮被涔嬮棿澶氭€佹€х殑涓€縐嶈〃鐜幫紝閲嶈澆Overloading鏄竴涓被涓鎬佹€х殑涓€縐嶈〃鐜般€傚鏋滃湪瀛愮被涓畾涔夋煇鏂規硶涓庡叾鐖剁被鏈夌浉鍚岀殑鍚嶇О鍜屽弬鏁幫紝鎴戜滑璇磋鏂規硶琚噸鍐?(Overriding)銆傚瓙綾葷殑瀵硅薄浣跨敤榪欎釜鏂規硶鏃訛紝灝嗚皟鐢ㄥ瓙綾諱腑鐨勫畾涔夛紝瀵瑰畠鑰岃█錛岀埗綾諱腑鐨勫畾涔夊鍚岃鈥滃睆钄解€濅簡銆傚鏋滃湪涓€涓被涓畾涔変簡澶氫釜鍚屽悕鐨勬柟娉曪紝瀹冧滑鎴栨湁涓嶅悓鐨勫弬鏁頒釜鏁版垨鏈変笉鍚岀殑鍙傛暟綾誨瀷錛屽垯縐頒負鏂規硶鐨勯噸杞?Overloading)銆侽verloaded鐨勬柟娉曟槸鍙互鏀瑰彉榪斿洖鍊肩殑綾誨瀷銆?/font>
絎崄鍏?/font>錛孲et閲岀殑鍏冪礌鏄笉鑳介噸澶嶇殑錛岄偅涔堢敤浠€涔堟柟娉曟潵鍖哄垎閲嶅涓庡惁鍛? 鏄敤==榪樻槸equals()? 瀹冧滑鏈変綍鍖哄埆?
Set閲岀殑鍏冪礌鏄笉鑳介噸澶嶇殑錛岄偅涔堢敤iterator()鏂規硶鏉ュ尯鍒嗛噸澶嶄笌鍚︺€俥quals()鏄垽璇諱袱涓猄et鏄惁鐩哥瓑銆?br />equals()鍜?=鏂規硶鍐沖畾寮曠敤鍊兼槸鍚︽寚鍚戝悓涓€瀵硅薄equals()鍦ㄧ被涓瑕嗙洊錛屼負鐨勬槸褰撲袱涓垎紱葷殑瀵硅薄鐨勫唴瀹瑰拰綾誨瀷鐩擱厤鐨勮瘽錛岃繑鍥炵湡鍊箋€?/font>
絎崄涓?/font>錛岀粰鎴戜竴涓綘鏈€甯歌鍒扮殑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
絎崄鍏?/font>錛宔rror鍜宔xception鏈変粈涔堝尯鍒?
error 琛ㄧず鎭㈠涓嶆槸涓嶅彲鑳戒絾寰堝洶闅劇殑鎯呭喌涓嬬殑涓€縐嶄弗閲嶉棶棰樸€傛瘮濡傝鍐呭瓨婧㈠嚭銆備笉鍙兘鎸囨湜紼嬪簭鑳藉鐞嗚繖鏍風殑鎯呭喌銆?br />exception 琛ㄧず涓€縐嶈璁℃垨瀹炵幇闂銆備篃灝辨槸璇達紝瀹冭〃紺哄鏋滅▼搴忚繍琛屾甯革紝浠庝笉浼氬彂鐢熺殑鎯呭喌銆?/font>
絎崄涔?/font>錛孡ist, Set, Map鏄惁緇ф壙鑷狢ollection鎺ュ彛?
List錛孲et鏄?/font>
Map涓嶆槸
絎簩鍗?/font>錛宎bstract class鍜宨nterface鏈変粈涔堝尯鍒?
澹版槑鏂規硶鐨勫瓨鍦ㄨ€屼笉鍘誨疄鐜板畠鐨勭被琚彨鍋氭娊璞$被錛坅bstract class錛夛紝瀹冪敤浜庤鍒涘緩涓€涓綋鐜版煇浜涘熀鏈涓虹殑綾伙紝騫朵負璇ョ被澹版槑鏂規硶錛屼絾涓嶈兘鍦ㄨ綾諱腑瀹炵幇璇ョ被鐨勬儏鍐點€備笉鑳藉垱寤篴bstract 綾葷殑瀹炰緥銆傜劧鑰屽彲浠ュ垱寤轟竴涓彉閲忥紝鍏剁被鍨嬫槸涓€涓娊璞$被錛屽茍璁╁畠鎸囧悜鍏蜂綋瀛愮被鐨勪竴涓疄渚嬨€備笉鑳芥湁鎶借薄鏋勯€犲嚱鏁版垨鎶借薄闈欐€佹柟娉曘€侫bstract 綾葷殑瀛愮被涓哄畠浠埗綾諱腑鐨勬墍鏈夋娊璞℃柟娉曟彁渚涘疄鐜幫紝鍚﹀垯瀹冧滑涔熸槸鎶借薄綾諱負銆傚彇鑰屼唬涔嬶紝鍦ㄥ瓙綾諱腑瀹炵幇璇ユ柟娉曘€傜煡閬撳叾琛屼負鐨勫叾瀹冪被鍙互鍦ㄧ被涓疄鐜拌繖浜涙柟娉曘€?br />鎺ュ彛錛坕nterface錛夋槸鎶借薄綾葷殑鍙樹綋銆傚湪鎺ュ彛涓紝鎵€鏈夋柟娉曢兘鏄娊璞$殑銆傚緇ф壙鎬у彲閫氳繃瀹炵幇榪欐牱鐨勬帴鍙h€岃幏寰椼€傛帴鍙d腑鐨勬墍鏈夋柟娉曢兘鏄娊璞$殑錛屾病鏈変竴涓湁紼嬪簭浣撱€傛帴鍙e彧鍙互瀹氫箟static final鎴愬憳鍙橀噺銆傛帴鍙g殑瀹炵幇涓庡瓙綾葷浉浼鹼紝闄や簡璇ュ疄鐜扮被涓嶈兘浠庢帴鍙e畾涔変腑緇ф壙琛屼負銆傚綋綾誨疄鐜扮壒孌婃帴鍙f椂錛屽畠瀹氫箟錛堝嵆灝嗙▼搴忎綋緇欎簣錛夋墍鏈夎繖縐嶆帴鍙g殑鏂規硶銆傜劧鍚庯紝瀹冨彲浠ュ湪瀹炵幇浜嗚鎺ュ彛鐨勭被鐨勪換浣曞璞′笂璋冪敤鎺ュ彛鐨勬柟娉曘€傜敱浜庢湁鎶借薄綾伙紝瀹冨厑璁鎬嬌鐢ㄦ帴鍙e悕浣滀負寮曠敤鍙橀噺鐨勭被鍨嬨€傞€氬父鐨勫姩鎬佽仈緙栧皢鐢熸晥銆傚紩鐢ㄥ彲浠ヨ漿鎹㈠埌鎺ュ彛綾誨瀷鎴栦粠鎺ュ彛綾誨瀷杞崲錛宨nstanceof 榪愮畻絎﹀彲浠ョ敤鏉ュ喅瀹氭煇瀵硅薄鐨勭被鏄惁瀹炵幇浜嗘帴鍙c€?/font>
絎簩鍗佷竴錛宎bstract鐨刴ethod鏄惁鍙悓鏃舵槸static,鏄惁鍙悓鏃舵槸native錛屾槸鍚﹀彲鍚屾椂鏄痵ynchronized?
閮戒笉鑳?/font>
絎簩鍗佷簩錛屾帴鍙f槸鍚﹀彲緇ф壙鎺ュ彛? 鎶借薄綾繪槸鍚﹀彲瀹炵幇(implements)鎺ュ彛? 鎶借薄綾繪槸鍚﹀彲緇ф壙瀹炰綋綾?concrete class)?
鎺ュ彛鍙互緇ф壙鎺ュ彛銆傛娊璞$被鍙互瀹炵幇(implements)鎺ュ彛錛屾娊璞$被鏄惁鍙戶鎵垮疄浣撶被錛屼絾鍓嶆彁鏄疄浣撶被蹇呴』鏈夋槑紜殑鏋勯€犲嚱鏁般€?/font>
絎簩鍗佷笁錛屽惎鍔ㄤ竴涓嚎紼嬫槸鐢╮un()榪樻槸start()?
鍚姩涓€涓嚎紼嬫槸璋冪敤start()鏂規硶錛屼嬌綰跨▼鎵€浠h〃鐨勮櫄鎷熷鐞嗘満澶勪簬鍙繍琛岀姸鎬侊紝榪欐剰鍛崇潃瀹冨彲浠ョ敱JVM璋冨害騫舵墽琛屻€傝繖騫朵笉鎰忓懗鐫€綰跨▼灝變細绔嬪嵆榪愯銆俽un()鏂規硶鍙互浜х敓蹇呴』閫€鍑虹殑鏍囧織鏉ュ仠姝竴涓嚎紼嬨€?/font>
聽
絎簩鍗佸洓錛屾瀯閫犲櫒Constructor鏄惁鍙override?
鏋勯€犲櫒Constructor涓嶈兘琚戶鎵匡紝鍥犳涓嶈兘閲嶅啓Overriding錛屼絾鍙互琚噸杞絆verloading銆?/font>
絎簩鍗佷簲錛屾槸鍚﹀彲浠ョ戶鎵縎tring綾?
String綾繪槸final綾繪晠涓嶅彲浠ョ戶鎵褲€?/font>
絎簩鍗佸叚錛屽綋涓€涓嚎紼嬭繘鍏ヤ竴涓璞$殑涓€涓猻ynchronized鏂規硶鍚庯紝鍏跺畠綰跨▼鏄惁鍙繘鍏ユ瀵硅薄鐨勫叾瀹冩柟娉?
涓嶈兘錛屼竴涓璞$殑涓€涓猻ynchronized鏂規硶鍙兘鐢變竴涓嚎紼嬭闂€?/font>
絎簩鍗佷竷錛宼ry {}閲屾湁涓€涓猺eturn璇彞錛岄偅涔堢揣璺熷湪榪欎釜try鍚庣殑finally {}閲岀殑code浼氫笉浼氳鎵ц錛屼粈涔堟椂鍊欒鎵ц錛屽湪return鍓嶈繕鏄悗?
浼氭墽琛岋紝鍦╮eturn鍓嶆墽琛屻€?/font>
絎簩鍗佸叓錛岀紪紼嬮: 鐢ㄦ渶鏈夋晥鐜囩殑鏂規硶綆楀嚭2涔樹互8絳夋柤鍑?
鏈塁鑳屾櫙鐨勭▼搴忓憳鐗瑰埆鍠滄闂繖縐嶉棶棰樸€?/font>
2 << 3
絎簩鍗佷節錛屼袱涓璞″€肩浉鍚?x.equals(y) == true)錛屼絾鍗村彲鏈変笉鍚岀殑hash code錛岃繖鍙ヨ瘽瀵逛笉瀵?
涓嶅錛屾湁鐩稿悓鐨刪ash code銆?/font>
絎笁鍗?/font>錛屽綋涓€涓璞¤褰撲綔鍙傛暟浼犻€掑埌涓€涓柟娉曞悗錛屾鏂規硶鍙敼鍙樿繖涓璞$殑灞炴€э紝騫跺彲榪斿洖鍙樺寲鍚庣殑緇撴灉錛岄偅涔堣繖閲屽埌搴曟槸鍊間紶閫掕繕鏄紩鐢ㄤ紶閫?
鏄€間紶閫掋€侸ava 緙栫▼璇█鍙敱鍊間紶閫掑弬鏁般€傚綋涓€涓璞″疄渚嬩綔涓轟竴涓弬鏁拌浼犻€掑埌鏂規硶涓椂錛屽弬鏁扮殑鍊煎氨鏄璇ュ璞$殑寮曠敤銆傚璞$殑鍐呭鍙互鍦ㄨ璋冪敤鐨勬柟娉曚腑鏀瑰彉錛屼絾瀵硅薄鐨勫紩鐢ㄦ槸姘歌繙涓嶄細鏀瑰彉鐨勩€?/font>
絎笁鍗佷竴錛宻wtich鏄惁鑳戒綔鐢ㄥ湪byte涓婏紝鏄惁鑳戒綔鐢ㄥ湪long涓婏紝鏄惁鑳戒綔鐢ㄥ湪String涓?
switch錛坋xpr1錛変腑錛宔xpr1鏄竴涓暣鏁拌〃杈懼紡銆傚洜姝や紶閫掔粰 switch 鍜?case 璇彞鐨勫弬鏁板簲璇ユ槸 int銆?short銆?char 鎴栬€?byte銆俵ong,string 閮戒笉鑳戒綔鐢ㄤ簬swtich銆?/font>
絎笁鍗佷簩錛岀紪紼嬮: 鍐欎竴涓猄ingleton鍑烘潵銆?br />聽聽聽聽 Singleton妯″紡涓昏浣滅敤鏄繚璇佸湪Java搴旂敤紼嬪簭涓紝涓€涓被Class鍙湁涓€涓疄渚嬪瓨鍦ㄣ€?br />涓€鑸琒ingleton妯″紡閫氬父鏈夊嚑縐嶇褰㈠紡:
絎竴縐嶅艦寮? 瀹氫箟涓€涓被錛屽畠鐨勬瀯閫犲嚱鏁頒負private鐨勶紝瀹冩湁涓€涓猻tatic鐨刾rivate鐨勮綾誨彉閲忥紝鍦ㄧ被鍒濆鍖栨椂瀹炰緥璇濓紝閫氳繃涓€涓猵ublic鐨刧etInstance鏂規硶鑾峰彇瀵瑰畠鐨勫紩鐢?緇ц€岃皟鐢ㄥ叾涓殑鏂規硶銆?br />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鐨勩€?br />涓€鑸涓虹涓€縐嶅艦寮忚鏇村姞瀹夊叏浜?
絎笁鍗佷笁 Hashtable鍜孒ashMap
Hashtable緇ф壙鑷狣ictionary綾伙紝鑰孒ashMap鏄疛ava1.2寮曡繘鐨凪ap interface鐨勪竴涓疄鐜?
HashMap鍏佽灝唍ull浣滀負涓€涓猠ntry鐨刱ey鎴栬€卾alue錛岃€孒ashtable涓嶅厑璁?
榪樻湁灝辨槸錛孒ashMap鎶奌ashtable鐨刢ontains鏂規硶鍘繪帀浜嗭紝鏀規垚containsvalue鍜宑ontainsKey銆傚洜涓篶ontains鏂規硶瀹規槗璁╀漢寮曡搗璇В銆?
鏈€澶х殑涓嶅悓鏄紝Hashtable鐨勬柟娉曟槸Synchronize鐨勶紝鑰孒ashMap涓嶆槸錛屽湪
澶氫釜綰跨▼璁塊棶Hashtable鏃訛紝涓嶉渶瑕佽嚜宸變負瀹冪殑鏂規硶瀹炵幇鍚屾錛岃€孒ashMap
灝卞繀欏諱負涔嬫彁渚涘鍚屾銆?
Hashtable鍜孒ashMap閲囩敤鐨刪ash/rehash綆楁硶閮藉ぇ姒備竴鏍鳳紝鎵€浠ユ€ц兘涓嶄細鏈夊緢澶х殑宸紓銆?/font>