锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>package com.test2;
2
3public class Demo2 {
4
5 /**
6 * @param args
7 */
8
9 public static int search(int[] arrays, int target) {
10
11 int start = 0;
12 int end = arrays.length - 1;
13 int pos;
14 while (start <= end) {
15 pos = (start + end) / 2;
16 if (arrays[pos] == target) {
17 return pos;
18 } else if (arrays[pos] > target) {// 濡傛灉鏁扮粍涓棿鐨勬暟澶т簬鐩爣錛屽垯灝唀nd鐨勪綅緗彉鎴愭暟緇勪腑闂翠綅緗紞錛戠殑浣嶇疆
19 end = pos - 1;
20 } else {
21 start = pos + 1;// 濡傛灉鏁扮粍涓棿鐨勬暟灝忎簬鐩爣錛屽垯灝唖tart鐨勪綅緗彉鎴愭暟緇勪腑闂翠綅緗?錛戠殑浣嶇疆
22 }
23 }
24 return -1; // 鑻ユ病鏈夋煡鎵懼埌錛屽垯榪斿洖錛嶏紤
25 }
26
27 public static void main(String[] args) {
28 int[] arrays = { 2, 3, 28, 39, 59, 288, 322, 324, 2323 };
29 System.out.println(search(arrays, 28));
30 System.out.println(search(arrays, 322));
31 System.out.println(search(arrays, 59));
32 System.out.println(search(arrays, 288));
33 }
34
35}
36
]]>
1銆佺▼搴忥細涓孌甸潤鎬佺殑浠g爜銆?/p>
2銆佽繘紼嬶細紼嬪簭鐨勪竴嬈″姩鎬佹墽琛岃繃紼嬶紝瀹冨搴斾粠浠g爜鍔犺澆銆佹墽琛屽埌鎵ц瀹屾瘯鐨勪竴涓畬鏁磋繃紼嬨?/p>
3銆佽繘紼嬩篃縐頒換鍔★紝鏀寔澶氫釜榪涚▼鍚屾椂鎵ц鐨凮S灝辮縐頒負澶氳繘紼婳S鎴栧浠誨姟OS銆?/p>
浜屻佽繘紼嬩笌綰跨▼
鍦ㄤ竴涓▼搴忓唴閮ㄤ篃鍙互瀹炵幇澶氫釜浠誨姟騫跺彂鎵ц錛屽叾涓瘡涓換鍔$О涓虹嚎紼嬨?/p>
綰跨▼鏄瘮榪涚▼鏇村皬鐨勬墽琛屽崟浣嶏紝瀹冩槸鍦ㄤ竴涓繘紼嬩腑鐙珛鐨勬帶鍒舵祦錛屽嵆紼嬪簭鍐呴儴鐨勬帶鍒舵祦銆?/p>
鐗圭偣錛氱嚎紼嬩笉鑳界嫭绔嬭繍琛岋紝蹇呴』渚濊禆浜庤繘紼嬶紝鍦ㄨ繘紼嬩腑榪愯銆?/p>
姣忎釜紼嬪簭鑷沖皯鏈変竴涓嚎紼嬬О涓轟富綰跨▼銆?/p>
鍗曠嚎紼嬶細鍙湁涓鏉$嚎紼嬬殑榪涚▼縐頒負鍗曠嚎紼?/p>
澶氱嚎紼嬶細鏈変笉姝竴涓嚎紼嬬殑榪涚▼縐頒負澶氱嚎紼?/p>
涓夈佸紑鍚綰跨▼鐨勪紭鐐瑰拰緙虹偣
鎻愰珮鐣岄潰紼嬪簭鍝嶅簲閫熷害銆傞氳繃浣跨敤綰跨▼錛屽彲浠ュ皢闇瑕佸ぇ閲忔椂闂村畬鎴愮殑嫻佺▼鍦ㄥ悗鍙板惎鍔ㄥ崟鐙殑綰跨▼瀹屾垚錛屾彁楂樺墠鍙扮晫闈㈢殑鐩稿簲閫熷害銆?/p>
鍏呭垎鍒╃敤緋葷粺璧勬簮錛屾彁楂樻晥鐜囥傞氳繃鍦ㄤ竴涓▼搴忓唴閮ㄥ悓鏃舵墽琛屽涓祦紼嬶紝鍙互鍏呭垎鍒╃敤CPU絳夌郴緇熻祫婧愶紝浠庤屾渶澶ч檺搴︾殑鍙戞尌紜歡鐨勬ц兘銆?/p>
褰撶▼搴忎腑鐨勭嚎紼嬫暟閲忔瘮杈冨鏃訛紝緋葷粺灝嗚姳璐瑰ぇ閲忕殑鏃墮棿榪涜綰跨▼鐨勫垏鎹紝榪欏弽鑰屼細闄嶄綆紼嬪簭鐨勬墽琛屾晥鐜囥備絾鏄紝鐩稿浜庝紭鍔挎潵璇達紝鍔e娍榪樻槸寰堟湁闄愮殑錛屾墍浠ョ幇鍦ㄧ殑欏圭洰寮鍙戜腑錛屽綰跨▼緙栫▼鎶鏈緱鍒頒簡騫挎硾鐨勫簲鐢ㄣ?/p>
涓銆佸湪瀹炵幇綰跨▼緙栫▼鏃訛紝棣栧厛闇瑕佽涓涓被鍏峰澶氱嚎紼嬬殑鑳藉姏錛岀戶鎵縏hread綾繪垨瀹炵幇Runnable鎺ュ彛鐨勭被鍏峰澶氱嚎紼嬬殑鑳藉姏錛岀劧鍚庡垱寤虹嚎紼嬪璞★紝璋冪敤瀵瑰簲鐨勫惎鍔ㄧ嚎紼嬫柟娉曞嵆鍙疄鐜扮嚎紼嬬紪紼嬨?/p>
鍦ㄤ竴涓▼搴忎腑鍙互瀹炵幇澶氫釜綰跨▼錛屽綰跨▼緙栫▼鎸囧湪鍚屼竴涓▼搴忎腑鍚姩浜嗕袱涓垨涓や釜浠ヤ笂鐨勭嚎紼嬨?/p>
鍦ㄥ疄闄呭疄鐜扮嚎紼嬫椂錛孞ava璇█鎻愪緵浜嗕笁縐嶅疄鐜版柟寮忥細
錛?錛夌戶鎵縏hread綾?/p>
錛?錛夊疄鐜癛unnable鎺ュ彛
錛?錛変嬌鐢═imer鍜孴imerTask緇勫悎
浜屻佺戶鎵縏hread綰跨▼綾誨疄鐜板綰跨▼
java.lang鍖呬腑鎻愪緵浜嗕竴涓笓闂ㄧ殑綰跨▼綾伙紙Thread錛夛紝鍦ㄨ綾諱腑灝佽浜嗚澶氬綰跨▼榪涜璋冨害鍜屽鐞嗙殑鏂規硶銆傚鏋滀竴涓被緇ф壙浜員hread綾伙紝鍒欒綾誨氨鍏峰浜嗗綰跨▼鐨勮兘鍔涳紝鍙互澶氱嚎紼嬬殑鏂瑰紡鎵ц銆?/p>
綰跨▼鐨勭壒鎬э細闅忔満鎬э紝緋葷粺鍦ㄦ墽琛屽綰跨▼紼嬪簭鏃跺彧淇濊瘉綰跨▼鏄氦鏇挎墽琛岀殑錛岃嚦浜庡摢涓嚎紼嬪厛鎵ц鍝釜綰跨▼鍚庢墽琛岋紝鍒欐棤娉曡幏寰椾繚璇侊紝闇瑕佷功鍐欎笓闂ㄧ殑浠g爜鎵嶅彲浠ヤ繚璇佹墽琛岀殑欏哄簭銆?/p>
瀵逛簬鍚屼竴涓嚎紼嬬被錛屼篃鍙互鍚姩澶氫釜綰跨▼
鍚屼竴涓嚎紼嬩笉鑳藉惎鍔ㄤ袱嬈★紝
褰撹嚜瀹氫箟綰跨▼涓殑run鏂規硶鎵ц瀹屾垚浠ュ悗錛屽垯鑷畾涔夌嚎紼嬭嚜鐒舵浜°傝屽浜庣郴緇熺嚎紼嬫潵璇達紝鍙湁褰搈ain鏂規硶鎵ц緇撴潫錛岃屼笖鍚姩鐨勫叾瀹冪嚎紼嬮兘緇撴潫浠ュ悗錛屾墠浼氱粨鏉熴傚綋緋葷粺綰跨▼鎵ц緇撴潫浠ュ悗錛岀▼搴忕殑鎵ц鎵嶇湡姝g粨鏉熴?/p>
涓夈?瀹炵幇Runable鎺ュ彛
a) 澶氱嚎紼嬪璞″疄鐜癹ava.lang.Runnable鎺ュ彛騫朵笖鍦ㄨ綾諱腑閲嶅啓Runnable鎺ュ彛鐨剅un鏂規硶銆?/p>
b) 濂藉錛氬疄鐜癛unable鎺ュ彛鐨勬柟娉曢伩鍏嶄簡鍗曠戶鎵跨殑灞闄愭с?/p>
渚?錛氫嬌鐢ㄥ疄鐜癛unable鎺ュ彛鐨勬柟寮忓疄鐜板綰跨▼銆?/p>
涓銆佺嚎紼嬬殑鐢熷懡鍛ㄦ湡
綰跨▼鏄竴涓姩鎬佹墽琛岀殑榪囩▼錛屽畠涔熸湁涓涓粠浜х敓鍒版浜$殑榪囩▼錛岃繖灝辨槸鎵璋撶殑鐢熷懡鍛ㄦ湡銆備竴涓嚎紼嬪湪瀹冪殑鐢熷懡鍛ㄦ湡鍐呮湁5縐嶇姸鎬侊細
1銆佹柊寤猴紙new Thread錛?/p>
褰撳垱寤篢hread綾葷殑涓涓疄渚嬶紙瀵硅薄錛夋椂錛屾綰跨▼榪涘叆鏂板緩鐘舵侊紙鏈鍚姩錛夈?br /> 渚嬪錛歍hread t1=new Thread();
2銆佸氨緇紙runnable錛?/p>
綰跨▼宸茬粡琚惎鍔紝姝e湪絳夊緟琚垎閰嶇粰CPU鏃墮棿鐗囷紝涔熷氨鏄姝ゆ椂綰跨▼姝e湪灝辯華闃熷垪涓帓闃熺瓑鍊欏緱鍒癈PU璧勬簮銆備緥濡傦細t1.start();
3銆佽繍琛岋紙running錛?/p>
綰跨▼鑾峰緱CPU璧勬簮姝e湪鎵ц浠誨姟錛坮un()鏂規硶錛夛紝姝ゆ椂闄ら潪姝ょ嚎紼嬭嚜鍔ㄦ斁寮僀PU璧勬簮鎴栬呮湁浼樺厛綰ф洿楂樼殑綰跨▼榪涘叆錛岀嚎紼嬪皢涓鐩磋繍琛屽埌緇撴潫銆?/p>
4銆佹浜★紙dead錛?/p>
褰撶嚎紼嬫墽琛屽畬姣曟垨琚叾瀹冪嚎紼嬫潃姝伙紝綰跨▼灝辮繘鍏ユ浜$姸鎬侊紝榪欐椂綰跨▼涓嶅彲鑳藉啀榪涘叆灝辯華鐘舵佺瓑寰呮墽琛屻?/p>
鑷劧緇堟錛氭甯歌繍琛宺un()鏂規硶鍚庣粓姝?/p>
寮傚父緇堟錛氳皟鐢╯top()鏂規硶璁╀竴涓嚎紼嬬粓姝㈣繍琛?/p>
5銆佸牭濉烇紙blocked錛?/p>
鐢變簬鏌愮鍘熷洜瀵艱嚧姝e湪榪愯鐨勭嚎紼嬭鍑篊PU騫舵殏鍋滆嚜宸辯殑鎵ц錛屽嵆榪涘叆鍫靛鐘舵併?/p>
姝e湪鐫$湢錛氱敤sleep(long t) 鏂規硶鍙嬌綰跨▼榪涘叆鐫$湢鏂瑰紡銆備竴涓潯鐪犵潃鐨勭嚎紼嬪湪鎸囧畾鐨勬椂闂磋繃鍘誨彲榪涘叆灝辯華鐘舵併?/p>
姝e湪絳夊緟錛氳皟鐢╳ait()鏂規硶銆傦紙璋冪敤motify()鏂規硶鍥炲埌灝辯華鐘舵侊級
琚彟涓涓嚎紼嬫墍闃誨錛氳皟鐢╯uspend()鏂規硶銆傦紙璋冪敤resume()鏂規硶鎭㈠錛?/p>
request 瀵硅薄鏄?javax.servlet.httpServletRequest綾誨瀷鐨勫璞°?璇ュ璞′唬琛ㄤ簡瀹㈡埛绔殑璇鋒眰淇℃伅錛屼富瑕佺敤浜庢帴鍙楅氳繃HTTP鍗忚浼犻佸埌鏈嶅姟鍣ㄧ殑鏁版嵁銆傦紙鍖呮嫭澶翠俊鎭佺郴緇熶俊鎭佽姹傛柟寮忎互鍙婅姹傚弬鏁扮瓑錛夈俽equest瀵硅薄鐨勪綔鐢ㄥ煙涓轟竴嬈¤姹傘?/p>
response 浠h〃鐨勬槸瀵瑰鎴風鐨勫搷搴旓紝涓昏鏄皢JSP瀹瑰櫒澶勭悊榪囩殑瀵硅薄浼犲洖鍒板鎴風銆俽esponse瀵硅薄涔熷叿鏈変綔鐢ㄥ煙錛屽畠鍙湪JSP欏甸潰鍐呮湁鏁堛?/p>
session 瀵硅薄鏄敱鏈嶅姟鍣ㄨ嚜鍔ㄥ垱寤虹殑涓庣敤鎴瘋姹傜浉鍏崇殑瀵硅薄銆傛湇鍔″櫒涓烘瘡涓敤鎴烽兘鐢熸垚涓涓猻ession瀵硅薄錛岀敤浜庝繚瀛樿鐢ㄦ埛鐨勪俊鎭紝璺熻釜鐢ㄦ埛鐨勬搷浣滅姸鎬併俿ession瀵硅薄鍐呴儴浣跨敤Map綾繪潵淇濆瓨鏁版嵁錛屽洜姝や繚瀛樻暟鎹殑鏍煎紡涓?“Key/value”銆?session瀵硅薄鐨剉alue鍙互浣垮鏉傜殑瀵硅薄綾誨瀷錛岃屼笉浠呬粎灞闄愪簬瀛楃涓茬被鍨嬨?/p>
application 瀵硅薄鍙皢淇℃伅淇濆瓨鍦ㄦ湇鍔″櫒涓紝鐩村埌鏈嶅姟鍣ㄥ叧闂紝鍚﹀垯application瀵硅薄涓繚瀛樼殑淇℃伅浼氬湪鏁翠釜搴旂敤涓兘鏈夋晥銆備笌session瀵硅薄鐩告瘮錛宎pplication瀵硅薄鐢熷懡鍛ㄦ湡鏇撮暱錛岀被浼間簬緋葷粺鐨?#8220;鍏ㄥ眬鍙橀噺”銆?/p>
out 瀵硅薄鐢ㄤ簬鍦╓eb嫻忚鍣ㄥ唴杈撳嚭淇℃伅錛屽茍涓旂鐞嗗簲鐢ㄦ湇鍔″櫒涓婄殑杈撳嚭緙撳啿鍖恒傚湪浣跨敤 out 瀵硅薄杈撳嚭鏁版嵁鏃訛紝鍙互瀵規暟鎹紦鍐插尯榪涜鎿嶄綔錛屽強鏃舵竻闄ょ紦鍐插尯涓殑孌嬩綑鏁版嵁錛屼負鍏朵粬鐨勮緭鍑鴻鍑虹紦鍐茬┖闂淬傚緟鏁版嵁杈撳嚭瀹屾瘯鍚庯紝瑕佸強鏃跺叧闂緭鍑烘祦銆?/p>
pageContext 瀵硅薄鐨勪綔鐢ㄦ槸鍙栧緱浠諱綍鑼冨洿鐨勫弬鏁幫紝閫氳繃瀹冨彲浠ヨ幏鍙?JSP欏甸潰鐨刼ut銆乺equest銆乺eponse銆乻ession銆乤pplication 絳夊璞°俻ageContext瀵硅薄鐨勫垱寤哄拰鍒濆鍖栭兘鏄敱瀹瑰櫒鏉ュ畬鎴愮殑錛屽湪JSP欏甸潰涓彲浠ョ洿鎺ヤ嬌鐢?pageContext瀵硅薄銆?/p>
config 瀵硅薄鐨勪富瑕佷綔鐢ㄦ槸鍙栧緱鏈嶅姟鍣ㄧ殑閰嶇疆淇℃伅銆傞氳繃 pageConext瀵硅薄鐨?getServletConfig() 鏂規硶鍙互鑾峰彇涓涓猚onfig瀵硅薄銆傚綋涓涓猄ervlet 鍒濆鍖栨椂錛屽鍣ㄦ妸鏌愪簺淇℃伅閫氳繃 config瀵硅薄浼犻掔粰榪欎釜 Servlet銆?寮鍙戣呭彲浠ュ湪web.xml 鏂囦歡涓負搴旂敤紼嬪簭鐜涓殑Servlet紼嬪簭鍜孞SP欏甸潰鎻愪緵鍒濆鍖栧弬鏁般?/p>
page 瀵硅薄浠h〃JSP鏈韓錛屽彧鏈夊湪JSP欏甸潰鍐呮墠鏄悎娉曠殑銆?page闅愬惈瀵硅薄鏈川涓婂寘鍚綋鍓?Servlet鎺ュ彛寮曠敤鐨勫彉閲忥紝綾諱技浜嶫ava緙栫▼涓殑 this 鎸囬拡銆?/p>
exception 瀵硅薄鐨勪綔鐢ㄦ槸鏄劇ず寮傚父淇℃伅錛屽彧鏈夊湪鍖呭惈 isErrorPage="true" 鐨勯〉闈腑鎵嶅彲浠ヨ浣跨敤錛屽湪涓鑸殑JSP欏甸潰涓嬌鐢ㄨ瀵硅薄灝嗘棤娉曠紪璇慗SP鏂囦歡銆俥xcepation瀵硅薄鍜孞ava鐨勬墍鏈夊璞′竴鏍鳳紝閮藉叿鏈夌郴緇熸彁渚涚殑緇ф壙緇撴瀯銆俥xception 瀵硅薄鍑犱箮瀹氫箟浜嗘墍鏈夊紓甯告儏鍐點傚湪Java紼嬪簭涓紝鍙互浣跨敤try/catch鍏抽敭瀛楁潵澶勭悊寮傚父鎯呭喌錛?濡傛灉鍦↗SP欏甸潰涓嚭鐜版病鏈夋崟鑾峰埌鐨勫紓甯革紝灝變細鐢熸垚 exception 瀵硅薄錛屽茍鎶?exception 瀵硅薄浼犻佸埌鍦╬age鎸囦護涓瀹氱殑閿欒欏甸潰涓紝鐒跺悗鍦ㄩ敊璇〉闈腑澶勭悊鐩稿簲鐨?exception 瀵硅薄銆?/p>