天天看点

JAVA面试题和项目面试核心要点精华总结(想进大公司必看)

涓€聽鏁版嵁搴撀?

1锛庡父闂暟鎹簱鏌ヨ銆佷慨鏀癸紙SQL鏌ヨ鍖呭惈绛涢€夋煡璇€佽仛鍚堟煡璇㈠拰閾炬帴鏌ヨ鍜屼紭鍖栭棶棰橈紝鎵嬪啓SQL璇彞锛屼緥濡傚洓涓悆闃熸瘮璧涳紝鐢⊿QL鏄剧ず鎵€鏈夋瘮璧涚粍鍚堬紱涓句緥2锛氶€夋嫨閲嶅椤癸紝鐒跺悗鍘绘帀閲嶅椤癸紱锛壜犳暟鎹簱閲岀殑瀵嗙爜濡備綍鍔犲瘑锛坢d5锛夛紱

(1)鏁版嵁搴撶殑瀵嗙爜鍔犲瘑:鍗曞悜鍔犲瘑,insert聽into聽users聽(username,password)聽values聽(鈥榤ike鈥?MD5(鈥榞uessme鈥?);

(2)鍙屽悜鍔犲瘑:insert聽into聽users聽(username聽,password)聽values聽(鈥榤ike鈥?ENCODE(鈥榞uessme鈥?鈥檃banaafn鈥?);

(3)SQL绛涢€夋煡璇?select聽*聽from聽user聽where聽user_id聽in聽(select聽user_id聽from聽user聽group聽by聽user_id聽having聽count(user_id)>1)聽order聽by聽user_id聽desc;

(4)SQL鑱氬悎鏌ヨ:select聽user_id聽from聽user聽group聽by聽user_id;

(5)SQL琛旀帴鏌ヨ:鍐呰繛鎺?select聽s.name,m.mess聽from聽student聽s聽inner聽join聽mark聽m聽on聽s.id=m.studentid;宸﹀杩炴帴:select聽s.name,聽m.mess聽from聽student聽s聽left聽join聽mark聽m聽on聽s.id=m.studentid;鍙冲杩炴帴:select聽s.name,聽m.mess聽from聽student聽s聽right聽join聽mark聽m聽on聽s.id=m.studentid;鍏ㄥ杩炴帴:select聽s.name聽,m.mess聽from聽student聽s聽full聽join聽mark聽m聽on聽s.id=m.studentid;

(6)鐞冮槦姣旇禌缁勫悎:select聽count(*)聽from聽department聽as聽a聽,department聽as聽b聽a.name<>b.name;

(7)SQL閫夋嫨閲嶅璇彞:select聽id聽,name聽from聽user聽where聽id聽in聽(select聽id聽from聽user聽group聽by聽id聽having聽count(1)>2);鍘婚櫎閲嶅璇彞:select聽id聽from聽user聽group聽by聽id聽having聽count(*)>1;

(8)鏁版嵁搴撲紭鍖?prepareStatement姣擲tatement鎬ц兘楂?涓€涓猻ql鍙戠粰鏈嶅姟鍣ㄥ幓鎵ц.娑夊強姝ラ:璇硶妫€鏌?璇箟瀹氫箟,缂栬瘧鍜岀紦瀛?鏈夊妫€绾︽潫浼氬奖鍝嶆彃鍏ュ拰鍒犻櫎鍔熻兘,濡傛灉绋嬪簭鑳戒繚璇佹暟鎹殑瀹屾暣鎬?閭d箞璁捐鏁版嵁搴撶殑鏃跺€欏氨鍘绘帀澶栭敭.sql璇彞鍏ㄩ儴澶у啓,鐗瑰埆鏄垪鍚嶅拰琛ㄥ悕.

2.聽濡備綍瀹炵幇鏁版嵁搴撳垎椤靛姛鑳斤紵聽SQL璇彞澶嶆潅鐨勫叧鑱旇〃鏌ヨ锛岀疮璁℃眰鍜屻€?

鍦ㄤ笉浣跨敤妗嗘灦鎯呭喌涓嬶紝濡備綍杩炴帴鏁版嵁搴擄紵

鏁版嵁搴撹繛鎺ュ畬涔嬪悗锛岄渶瑕佸叧闂殑涓や釜鎺ュ彛鏄粈涔堬紵

鍏抽棴鏁版嵁搴撹繃绋嬩腑鏈€瀹规槗鎶涘嚭鐨勫紓甯告槸浠€涔堬紵

(1)鍒嗛〉:鈥漵elect聽*聽from聽user聽limit聽鈥?(pageNo-1)*pageSize+鈥?鈥?pageSize;

(2)姹傚拰:select聽*聽from聽user1聽union聽select聽*聽from聽user2;

(3)鎵嬪姩杩炴帴鏁版嵁搴?Connection聽cn=null;PreparedStatement聽pst=null;Result聽rs=null;try{Class.forname(driverClassName);cn=DriverManager.getConnection(url,username,password);pst=cn.prepareStatement(鈥渟ql鈥?;pst.setString(1,studentName);Result聽rs=pst.executeQuery();while(rs.next()){system.out.println();}catch(Exception聽e){e.printStackTrace();}finally{if(rs!=null){rs.close();}if(pst!=null){pst.close()}if(cn!=null){cn.close();}}}

(4)Result聽prepareStatement聽缁撴灉闆嗗拰sql浼犺緭

(5)Exception

3.聽Oracle绱㈠紩鐨勪紭缂虹偣銆佽鍥惧拰瀛樺偍杩囩▼銆佽繛鎺ョ鏄粈涔堬紵榛樿绔彛鏄粈涔堬紵MySQL浠€涔堟槸宸﹂摼鎺ャ€佸彸閾炬帴鍜屽唴閾炬帴锛熸暟鎹簱涓煡璇㈠乏閾炬帴銆佸彸閾炬帴鍜屽唴閾炬帴缁撴灉鏄粈涔堬紵

鏁版嵁搴撶殑瀛樺偍鍘熺悊锛岃涓€璁?

(1)绔彛:1521;

(2)鍐呰繛鎺ュ氨鏄乏琛ㄥ拰鍙宠〃鐩稿悓鐨勬暟鎹?

澶栬繛鎺ュ垎涓猴細宸﹀杩炴帴銆佸彸澶栬繛鎺ャ€佸叏澶栬繛鎺?

宸﹀杩炴帴灏辨槸浠ュ乏琛ㄤ负鍑嗭紝鍘诲尮閰嶅彸琛紝宸﹁〃鏈夊灏戞潯鏁版嵁锛岀粨鏋滃氨鏄灏戞潯鏁版嵁

鍙冲杩炴帴灏辨槸涓庡乏澶栬繛鎺ュ弽涔嬶紝浠ュ彸琛ㄤ负鍑嗭紝鍘诲尮閰嶅乏琛紝鍙宠〃鏈夊灏戞潯鏁版嵁锛岀粨鏋滃氨鏄灏戞潯鏁版嵁銆?

鍏ㄥ杩炴帴鏁版嵁鏉℃暟涓嶄竴瀹氾紝鐩稿綋涓庢槸宸﹀杩炴帴聽鍜屽彸澶栬繛鎺ヂ犵殑缁煎悎銆?

(3)oracle绱㈠紩鍒嗕负:鑱氶泦绱㈠紩,闈炶仛闆嗙储寮?鍞竴绱㈠紩;浼樼偣:鏂逛究鏌ヨ,鍦ㄦ暟鎹噺澶ф椂鎺掑簭鏇村疁鏌ヨ;缂虹偣:鏌ヨ鏃堕渶瑕佽繘琛岄噸鏂版帓搴忥紝鍑忓皯浜嗘晥鐜囥€傜墿鐞嗙储寮曠己鐐孤犲缓绔嬬储寮曟晥鐜囦綆锛屽彧鑳藉缓涓€涓洿鏈夎鏈嶅姏鐨?

(4)杩炴帴绗︿负鈥潀|鈥濇垨CONCAT();

(5)瑙嗗浘:鍏跺疄灏辨槸涓€鏉℃煡璇ql璇彞锛岀敤浜庢樉绀轰竴涓垨澶氫釜琛ㄦ垨鍏朵粬瑙嗗浘涓殑鐩稿叧鏁版嵁銆傝鍥惧皢涓€涓煡璇㈢殑缁撴灉浣滀负涓€涓〃鏉ヤ娇鐢紝鍥犳瑙嗗浘鍙互琚湅浣滄槸瀛樺偍鐨勬煡璇⒙犳垨涓€涓櫄鎷熻〃銆傝鍥炬潵婧愪簬琛紝鎵€鏈夊瑙嗗浘鏁版嵁鐨勪慨鏀规渶缁堥兘浼氳鍙嶆槧鍒拌鍥剧殑鍩鸿〃涓紝杩欎簺淇敼蹇呴』鏈嶄粠鍩鸿〃鐨勫畬鏁存€х害鏉燂紝骞跺悓鏍蜂細瑙﹀彂瀹氫箟鍦ㄥ熀琛ㄤ笂鐨勮Е鍙戝櫒

(6)瀛樺偍杩囩▼:oracle鏈夌郴缁熷瓨鍌ㄨ繃绋嬪拰鑷畾涔夊瓨鍌ㄨ繃绋嬶紝涓轰簡瀹屾垚鐗瑰畾鍔熻兘鐨剆ql璇彞闆嗭紝缁忕紪璇戝悗瀛樺偍鍦ㄦ暟鎹簱涓紝鐢ㄦ埛閫氳繃鐗瑰畾鐨勫瓨鍌ㄨ繃绋嬪悕鏉ユ墽琛?

(7)瀛樺偍鍘熺悊:褰撶敤鎴峰垱寤虹储寮曟椂,oracle浼氳嚜鍔ㄧ殑鍦ㄨ〃绌洪棿閲屽垱寤虹储寮曟鏉ュ瓨鍌ㄧ储寮曠殑鏁版嵁;

4.聽Char閲岄潰鍙互瀛樻斁姹夊瓧鍚楋紵

(1)char鍨嬪彉閲忓氨鏄敤鏉ュ瓨鍌║nicode缂栫爜瀛楃鐨?Unicode缂栫爜瀛楃闆嗕腑鍖呭惈浜嗘眽瀛?鎵€浠ュ彲浠ュ瓨鍌ㄦ眽瀛?濡傛灉鏌愪釜鐗规畩鐨勬眽瀛楁病鏈夊寘鍚湪Unicode缂栫爜瀛楃闆嗕腑,閭d箞char鍨嬪彉閲忓氨涓嶈兘瀛樺偍,Unicode鍗犵敤涓や釜瀛楄妭,鎵€浠har鍨嬬殑鍙橀噺涔熸槸鍗犵敤涓や釜瀛楄妭.

浜屄燡ava鍩虹聽

1.聽璇翠竴涓嬪鎬佺殑琛ㄧ幇褰㈠紡锛?

(1)閲嶈浇,閲嶅啓,閲嶈浇Overload琛ㄧず鍚屼竴涓被涓彲浠ユ湁澶氫釜鍚嶇О鐩稿悓鐨勬柟娉曪紝浣嗚繖浜涙柟娉曠殑鍙傛暟鍒楄〃鍚勪笉鐩稿悓

(2)閲嶅啓Override琛ㄧず瀛愮被涓殑鏂规硶鍙互涓庣埗绫讳腑鐨勬煇涓柟娉曠殑鍚嶇О鍜屽弬鏁板畬鍏ㄧ浉鍚岋紝閫氳繃瀛愮被鍒涘缓鐨勫疄渚嬪璞¤皟鐢ㄨ繖涓柟娉曟椂锛屽皢璋冪敤瀛愮被涓殑瀹氫箟鏂规硶锛岃繖鐩稿綋浜庢妸鐖剁被涓畾涔夌殑閭d釜瀹屽叏鐩稿悓鐨勬柟娉曠粰瑕嗙洊浜嗭紝杩欎篃鏄潰鍚戝璞$紪绋嬬殑澶氭€佹€х殑涓€绉嶈〃鐜?鍙兘姣旂埗绫绘姏鍑烘洿灏戠殑寮傚父锛屾垨鑰呮槸鎶涘嚭鐖剁被鎶涘嚭鐨勫紓甯哥殑瀛愬紓甯?瀛愮被鏂规硶鐨勮闂潈闄愬彧鑳芥瘮鐖剁被鐨勬洿澶э紝涓嶈兘鏇村皬銆傚鏋滅埗绫荤殑鏂规硶鏄痯rivate绫诲瀷锛岄偅涔堬紝瀛愮被鍒欎笉瀛樺湪瑕嗙洊鐨勯檺鍒讹紝鐩稿綋浜庡瓙绫讳腑澧炲姞浜嗕竴涓叏鏂扮殑鏂规硶

2.聽鏁版嵁鐨勫姞瀵嗘ā寮忥紵鍔犲瘑妯″紡鐨勯『搴忥紵

(1)瀵圭О寮忓拰闈炲绉板紡,椤哄簭:浼犺緭鍔犲瘑,鏁版嵁瀛樺偍鍔犲瘑,鏁版嵁瀹屾暣鍨嬬殑閴村埆,瀵嗛挜绠$悊;

3.聽闂埌hasshmap搴曞眰鏁版嵁缁撴瀯锛宎rraylist-linklist鍖哄埆鍜屼负浠€涔堟湁杩欐牱鐨勫尯鍒紱鏁扮粍鐨勬瘮杈冩柟娉曪紱鍩烘湰绫诲瀷鍜屽紩鐢ㄦ暟鎹被鍨嬬殑鍖哄埆锛涢棶鎺ュ彛鍜屾娊璞$被鐨勫尯鍒紱

(1)HashMap鏄嚎绋嬪簭涓嶅畨鍏ㄧ殑锛屼笉鏄悓姝ョ殑

HashMap鍙互璁╀綘灏嗙┖鍊间綔涓轰竴涓〃鐨勬潯鐩殑key鎴杤alue

Hashmap瀹為檯涓婃槸涓€涓暟缁勫拰閾捐〃鐨勭粨鍚堜綋,鍦╦ava缂栫▼璇█涓紝鏈€鍩烘湰鐨勭粨鏋勫氨鏄袱绉嶏紝涓€涓槸鏁扮粍锛屽彟澶栦竴涓槸妯℃嫙鎸囬拡锛堝紩鐢級锛屾墍鏈夌殑鏁版嵁缁撴瀯閮藉彲浠ョ敤杩欎袱涓熀鏈粨鏋勬潵鏋勯€犵殑锛宧ashmap涔熶笉渚嬪銆侶ashmap瀹為檯涓婃槸涓€涓暟缁勫拰閾捐〃鐨勭粨鍚堜綋.

(2)鍖哄埆:ArrayList鏄疄鐜颁簡鍩轰簬鍔ㄦ€佹暟缁勭殑鏁版嵁缁撴瀯锛孡inkedList鍩轰簬閾捐〃鐨勬暟鎹粨鏋?瀵逛簬闅忔満璁块棶get鍜宻et锛孉rrayList瑙夊緱浼樹簬LinkedList锛屽洜涓篖inkedList瑕佺Щ鍔ㄦ寚閽?.瀵逛簬鏂板鍜屽垹闄ゆ搷浣渁dd鍜宺emove锛孡inedList姣旇緝鍗犱紭鍔匡紝鍥犱负ArrayList瑕佺Щ鍔ㄦ暟鎹?鑻ュ彧瀵瑰崟鏉℃暟鎹彃鍏ユ垨鍒犻櫎锛孉rrayList鐨勯€熷害鍙嶈€屼紭浜嶭inkedList銆備絾鑻ユ槸鎵孤犻噺闅忔満鐨勬彃鍏ュ垹闄ゆ暟鎹紝LinkedList鐨勯€熷害澶уぇ浼樹簬ArrayList.聽鍥犱负ArrayList姣忔彃鍏ヤ竴鏉℃暟鎹紝瑕佺Щ鍔ㄦ彃鍏ョ偣鍙婁箣鍚庣殑鎵€鏈夋暟鎹€偮犅犺繖涓€鐐规垜鍋氫簡瀹為獙銆傚湪鍒嗗埆鏈?00000鏉♀€滆褰曗€濈殑ArrayList鍜孡inkedList鐨勯浣嶆彃鍏?0000鏉℃暟鎹紝LinkedList鑰楁椂绾β犳槸ArrayList鐨?0鍒嗕箣1銆?

4.聽濡備綍閰嶇疆瀹夎jdk锛熷浣曞垽鏂叾閰嶇疆鎴愬姛锛?

(1)棣栧厛瀹夎JDK瑕佺湅浣犵數鑴戠殑浣嶆暟锛岄€夋嫨32浣嶆垨64浣嶇殑jdk鐗堟湰锛屽缓璁娇鐢?.6鐗堟湰浠ヤ笂锛?.7鐗堟湰涓€涓?

(2)浠嶰racle瀹樼綉涓嬭浇JDK瀹夎鍖呫€?

(3)瀹夎鍖呬笅杞藉畬鎴愬悗锛屽弻鍑诲畨瑁呭寘杩涜瀹夎锛屽畨瑁呰矾寰勫彲浠ヤ娇鐢ㄩ粯璁よ矾寰勩€?

(4)瀹夎瀹屾垚鍚庯紝杩橀渶瑕佽繘琛岀幆澧冨彉閲忕殑閰嶇疆锛屽湪绯荤粺鐜鍙橀噺鐨勭敤鎴峰彉閲忛噷闈㈡坊鍔犱竴涓彉閲忓悕涓郝燡AVA_HOME鐜鍙橀噺锛岀劧鍚庡湪鍙橀噺鍊煎濉啓涓奐DK瀹夎鐩綍鐨刡in鏂囦欢澶圭殑璺緞锛屽锛欳:\ProgramFiles\Java聽\jdk1.7.0_79锛岀劧鍚庡啀娣诲姞涓€涓彉閲忓悕涓篜ath鐨勫彉閲忥紝鍙橀噺鍊煎~鍐欎负%JAVA_HOME%\bin;鍗冲彲銆?

(5)鍙互鍐欎竴涓畝鍗曠殑java绋嬪簭鏉ユ祴璇旿DK鏄惁宸插畨瑁呮垚鍔燂細public聽class聽Test{public聽static聽void聽main(String聽args[]){System.out.println("This聽is聽a聽test聽program.");}}灏嗕笂闈㈢殑杩欐绋嬪簭淇濆瓨涓烘枃浠跺悕涓篢est.java鐨勬枃浠躲€?娉ㄦ剰Test鏄▼搴忕殑鍏叡绫伙紝蹇呴』鍜屾枃浠跺悕涓€鑷达紝鍖呮嫭澶у皬鍐?鐒跺悗鎵撳紑鍛戒护鎻愮ず绗︾獥鍙o紝cd鍒颁綘鐨凾est.java鎵€鍦ㄧ洰褰曪紝鐒跺悗閿叆涓嬮潰鐨勫懡浠ぢ狅細javac聽Test.java聽锛堝洖杞︼級java聽Test聽姝ゆ椂濡傛灉鐪嬪埌鎵撳嵃鍑烘潵This聽is聽a聽test聽program.鐨勮瘽璇存槑瀹夎鎴愬姛浜嗭紝濡傛灉娌℃湁鎵撳嵃鍑鸿繖鍙ヨ瘽锛屼綘闇€瑕佷粩缁嗘鏌ヤ竴涓嬩綘鐨勯厤缃儏鍐点€?

5.聽鎵嬪啓鍗曚緥妯″紡锛堥タ姹夊拰楗辨眽妯″紡锛夊拰宸ュ巶妯″紡锛?

(1)鍗曚緥楗挎眽妯″紡://楗挎眽寮忓崟渚嬬被.鍦ㄧ被鍒濆鍖栨椂锛屽凡缁忚嚜琛屽疄渚嬪寲聽

聽2聽public聽class聽Singleton1聽{

聽3聽聽聽聽聽//绉佹湁鐨勯粯璁ゆ瀯閫犲瓙

聽4聽聽聽聽聽private聽Singleton1()聽{}

聽5聽聽聽聽聽//宸茬粡鑷瀹炰緥鍖柭? 聽6聽聽聽聽聽private聽static聽final聽Singleton1聽single聽=聽new聽Singleton1();

聽7聽聽聽聽聽//闈欐€佸伐鍘傛柟娉暵? 聽8聽聽聽聽聽public聽static聽Singleton1聽getInstance()聽{

聽9聽聽聽聽聽聽聽聽聽return聽single;

10聽聽聽聽聽}

11聽}

(2)鎳掓眽妯″紡://鎳掓眽寮忓崟渚嬬被.鍦ㄧ涓€娆¤皟鐢ㄧ殑鏃跺€欏疄渚嬪寲聽

聽2聽public聽class聽Singleton2聽{

聽3聽聽聽聽聽//绉佹湁鐨勯粯璁ゆ瀯閫犲瓙

聽4聽聽聽聽聽private聽Singleton2()聽{}

聽5聽聽聽聽聽//娉ㄦ剰锛岃繖閲屾病鏈塮inal聽聽聽聽

聽6聽聽聽聽聽private聽static聽Singleton2聽single=null;

聽7聽聽聽聽聽//闈欐€佸伐鍘傛柟娉暵? 聽8聽聽聽聽聽public聽synchronized聽聽static聽Singleton2聽getInstance()聽{

聽9聽聽聽聽聽聽聽聽聽聽if聽(single聽==聽null)聽{聽聽

10聽聽聽聽聽聽聽聽聽聽聽聽聽聽single聽=聽new聽Singleton2();

11聽聽聽聽聽聽聽聽聽聽}聽聽

12聽聽聽聽聽聽聽聽聽return聽single;

13聽聽聽聽聽}

14聽}

(3)宸ュ巶妯″紡:

interface聽IFactory{

public聽IProduct聽createProduct();}

Class聽Factory聽implements聽IFactory{

public聽IProduct聽createProduct(){return聽new聽Product();}}

Public聽class聽client{

Public聽Static聽void聽main聽(String聽[]聽args){IFactory聽factory=new聽Factory();

IProduct聽product=factory.createProduct();

product.ProductMethod();}}

6.聽鎵嬪啓鍒涘缓list锛屽畾涔塴ist锛屾硾鍨嬶紵

(1)List聽list=new聽ArrayList();

(2)List<Student>聽list=new聽ArrayList<Student>();

(3)Student聽s=new聽Student();

(4)List.add(s);

7.聽瀹夊叏锛歨assmap鍜宧asstable鐨勫尯鍒紵閭d釜涓嶅畨鍏紵涓轰粈涔堬紵鎬庝箞渚垮埄hashmap锛熺嚎绋嬫柟闈細绾跨▼鏈夊嚑绉嶇姸鎬侊紵璋堣皥澶氱嚎绋嬬殑瀹夊叏闂锛涢棶鍒扮嚎绋嬪拰鍚屾锛熷啓涓€涓敓浜ц€呭拰娑堣垂鑰呮ā寮?聽鑰冭檻楂樺苟鍙戠殑闂銆?

(1):鍖哄埆:涓€.鍘嗗彶鍘熷洜:Hashtable鏄熀浜庨檲鏃х殑Dictionary绫荤殑锛孒ashMap鏄疛ava聽1.2寮曡繘鐨凪ap鎺ュ彛鐨勪竴涓疄鐜?

(2)浜?鍚屾鎬?Hashtable鏄嚎绋嬪畨鍏ㄧ殑锛屼篃灏辨槸璇存槸鍚屾鐨勶紝鑰孒ashMap鏄嚎绋嬪簭涓嶅畨鍏ㄧ殑锛屼笉鏄悓姝ョ殑

(3)涓?鍊硷細鍙湁HashMap鍙互璁╀綘灏嗙┖鍊间綔涓轰竴涓〃鐨勬潯鐩殑key鎴杤alue

(4)涓轰粈涔?鏈€澶х殑涓嶅悓鏄紝Hashtable鐨勬柟娉曟槸Synchronize鐨勶紝鑰孒ashMap涓嶆槸锛屽湪澶氫釜绾跨▼璁块棶Hashtable鏃讹紝涓嶉渶瑕佽嚜宸变负瀹冪殑鏂规硶瀹炵幇鍚屾锛岃€孒ashMap聽灏卞繀椤讳负涔嬫彁渚涘鍚屾銆偮?

Hashtable鍜孒ashMap閲囩敤鐨刪ash/rehash绠楁硶閮藉ぇ姒備竴鏍凤紝鎵€浠ユ€ц兘涓嶄細鏈夊緢澶х殑宸紓

(5)閬嶅巻hashmap:涓ょ鏂瑰紡,Map聽map=new聽HashMap();

Iterator聽iter=map.entrySet().iterator();s

Iterator聽iter=map.keySet().iterator();

(6)绾跨▼閫氬父鏈変簲绉嶇姸鎬?鍒涘缓,灏辩华,杩愯,闃诲,鍜屾浜?

绗竴鏄垱寤虹姸鎬併€傚湪鐢熸垚绾跨▼瀵硅薄锛屽苟娌℃湁璋冪敤璇ュ璞$殑start鏂规硶锛岃繖鏄嚎绋嬪浜庡垱寤虹姸鎬佹墜鍐欏瓧绗︿覆鍙嶈浆鍜屽啋娉℃帓搴忥紱

绗簩鏄氨缁姸鎬併€傚綋璋冪敤浜嗙嚎绋嬪璞$殑start鏂规硶涔嬪悗锛岃绾跨▼灏辫繘鍏ヤ簡灏辩华鐘舵€侊紝浣嗘槸姝ゆ椂绾跨▼璋冨害绋嬪簭杩樻病鏈夋妸璇ョ嚎绋嬭缃负褰撳墠绾跨▼锛屾鏃跺浜庡氨缁姸鎬併€傚湪绾跨▼杩愯涔嬪悗锛屼粠绛夊緟鎴栬€呯潯鐪犱腑鍥炴潵涔嬪悗锛屼篃浼氬浜庡氨缁姸鎬併€?

绗笁鏄繍琛岀姸鎬併€傜嚎绋嬭皟搴︾▼搴忓皢澶勪簬灏辩华鐘舵€佺殑绾跨▼璁剧疆涓哄綋鍓嶇嚎绋嬶紝姝ゆ椂绾跨▼灏辫繘鍏ヤ簡杩愯鐘舵€侊紝寮€濮嬭繍琛宺un鍑芥暟褰撲腑鐨勪唬鐮併€?

绗洓鏄樆濉炵姸鎬併€傜嚎绋嬫鍦ㄨ繍琛岀殑鏃跺€欙紝琚殏鍋滐紝閫氬父鏄负浜嗙瓑寰呮煇涓椂闂寸殑鍙戠敓(姣斿璇存煇椤硅祫婧愬氨缁?涔嬪悗鍐嶇户缁繍琛屻€俿leep,suspend锛寃ait绛夋柟娉曢兘鍙互瀵艰嚧绾跨▼闃诲銆?

绗簲鏄浜$姸鎬併€傚鏋滀竴涓嚎绋嬬殑run鏂规硶鎵ц缁撴潫鎴栬€呰皟鐢╯top鏂规硶鍚庯紝璇ョ嚎绋嬪氨浼氭浜°€傚浜庡凡缁忔浜$殑绾跨▼锛屾棤娉曞啀浣跨敤start鏂规硶浠ゅ叾杩涘叆灏辩华

(7)澶氱嚎绋嬬殑瀹夊叏闂:鎬荤粨鏉ヨ锛屽涓嚎绋嬪湪鎵ц鍚屼竴娈典唬鐮佺殑鏃跺€欙紝姣忔鐨勬墽琛岀粨鏋滃拰鍗曠嚎绋嬫墽琛岀殑缁撴灉閮芥槸涓€鏍风殑锛屼笉瀛樺湪鎵ц缁撴灉鐨勪簩涔夋€э紝灏卞彲浠ョО浣滄槸绾跨▼瀹夊叏鐨勩€傜嚎绋嬪畨鍏ㄩ棶聽棰樺鏄敱鍏ㄥ眬鍙橀噺鍜岄潤鎬佸彉閲忓紩璧风殑锛屽綋澶氫釜绾跨▼瀵瑰叡浜暟鎹彧鎵ц璇绘搷浣滐紝涓嶆墽琛屽啓鎿嶄綔鏃讹紝涓€鑸槸绾跨▼瀹夊叏鐨勶紱褰撳涓嚎绋嬮兘鎵ц鍐欐搷浣滄椂锛岄渶瑕佽€冭檻绾跨▼鍚屾聽鏉ヨВ鍐崇嚎绋嬪畨鍏ㄩ棶棰樸€?

(8)绾跨▼鍜屽悓姝?璇存槑Java绾跨▼鐨勪袱涓壒鎬э紝鍙鎬у拰鏈夊簭鎬с€傚涓嚎绋嬩箣闂存槸涓嶈兘鐩存帴浼犻€掓暟鎹氦浜掔殑锛屽畠浠箣闂寸殑浜や簰鍙兘閫氳繃鍏变韩鍙橀噺鏉ュ疄鐜?

java鍏佽澶氱嚎绋嬪苟鍙戞帶鍒讹紝褰撳涓嚎绋嬪悓鏃舵搷浣滀竴涓彲鍏变韩鐨勮祫婧愬彉閲忔椂锛堝鏁版嵁鐨勫鍒犳敼鏌ワ級锛屄?

聽聽聽聽灏嗕細瀵艰嚧鏁版嵁涓嶅噯纭紝鐩镐簰涔嬮棿浜х敓鍐茬獊锛屽洜姝ゅ姞鍏ュ悓姝ラ攣浠ラ伩鍏嶅湪璇ョ嚎绋嬫病鏈夊畬鎴愭搷浣滀箣鍓嶏紝琚叾浠栫嚎绋嬬殑璋冪敤锛屄?

浠庤€屼繚璇佷簡璇ュ彉閲忕殑鍞竴鎬у拰鍑嗙‘鎬?

(9)鐢熶骇鑰呭拰娑堣垂鑰呮ā寮?瀛樺偍绌洪棿宸叉弧锛岃€岀敓浜ц€呭崰鐢ㄧ潃瀹冿紝娑堣垂鑰呯瓑鐫€鐢熶骇鑰呰鍑虹┖闂翠粠鑰屽幓闄や骇鍝侊紝鐢熶骇鑰呯瓑鐫€娑堣垂鑰呮秷璐逛骇鍝侊紝浠庤€屽悜绌洪棿涓坊鍔犱骇鍝併€備簰鐩哥瓑寰咃紝浠庤€屽彂鐢熸閿併€?

(10)妯″紡:1.wait()鍜宯otify();2.await()鍜宻ignal()锛屽嵆绾跨▼閿佺殑鏂瑰紡;3.闃诲闃熷垪鐨勬柟寮?

(11)楂樺苟鍙?鎵嬫鏃犻潪鏄垏鍓诧紙绾靛悜锛屾í鍚戯級鍜岃礋杞藉潎琛°€傜旱鍚戝垎闅斾富瑕佹槸鎸変笟鍔★紙鍔熻兘锛夋潵鍒嗭紝涔熷氨鏄墍璋撻潰鍚戞湇鍔℃灦鏋勶紝妯悜鍒嗛殧鏂瑰紡姣旇緝澶氾紝涓昏渚濊禆浜庢墍澶勭悊鐨勫璞″睘鎬ц礋杞藉潎琛″垯鍙互鏄暅鍍忥紙閮ㄧ讲锛夊垎甯冿紙鍚屾牱鐨勫姛鑳介儴缃插嚑浠斤級鍜岃绠楀垎甯冿紙涓€涓棶棰樺垎鍑犱釜瀛愰棶棰樺湪涓嶅悓鐨勬満鍣ㄤ笂杩愯锛岀劧鍚庡悎骞剁粨鏋滐級銆傚綋鐒讹紝杩欎簺鎵嬫鏄彲浠ョ患鍚堝埄鐢ㄧ殑锛屾渶缁堝彲浠ュ仛鎴愬娴佹按绾垮垎甯冨紡璁$畻妯″紡;

8.聽list銆乵ap鍜宻et浠€鏃跺€欑敤锛熷郊姝ら棿鐨勫尯鍒拰鑱旂郴锛?

(1)list鍒楄〃鏄『搴忓瓨鏀惧璞$殑锛屽彲浠ユ湁鐩稿悓鐨勫璞★紝閫氳繃绱㈠紩瀛樺彇锛涗竴鑸湪鑳界洿鎺ヤ娇鐢ㄦ暟缁勭殑鏃跺€欙紝灏辨湁浣跨敤鍒楄〃

(2)set闆嗗悎:闆嗗悎鏄棤搴忓瓨鏀惧璞$殑锛屽叾涓笉鑳芥湁閲嶅鐨勫璞★紙鍞竴鐨勶紝鍥炲繂楂樹腑鏃跺€欐暟瀛︿腑瀛︿範鐨勯泦鍚堢壒鎬э級锛岄泦鍚堟病鏈夌储寮曪紝鍙兘閬嶅巻娆″瓨鍙栵紱涓€鑸敤浜庡瓨鏀炬棤搴忕殑锛堟寚椤哄簭涓嶉噸瑕侊級涓嶈兘閲嶅鐨勫璞?

(3)Map鏄犲皠:鏄犲皠锛屽瓨鏀剧殑鏄敭涓庡€肩殑鏄犲皠锛屽叾涓敭鏄敮涓€鐨勶紙涓嶈兘鏈夐噸澶嶅璞★級锛岃€屽€煎彲浠ユ湁閲嶅鐨勫璞★紝瀛樼殑鏃跺€欙紝闇€瑕佹寚瀹氶敭鍜屽搴旂殑鍊硷紝鍙栫殑鏃跺€欏彲浠ユ牴鎹敭鍚嶅彇鍒板€硷紝涔熷彲浠ラ亶鍘?涓€鑸湪鐢ㄤ簬瀛樻斁鍏锋湁瀵瑰簲鍏崇郴鐨勯敭鍊煎鐨勬椂鍊欑敤;

(4)涓夎€呯殑鍖哄埆鍜岃仈绯?涓夎€呴兘鏄帴鍙?List涓嶴et鍏锋湁鐩镐技鎬э紝瀹冧滑閮芥槸鍗曞垪鍏冪礌鐨勯泦鍚?list,set鏄户鎵胯嚜collection,鑰宮ap涓嶆槸,list閲屽彲浠ユ湁閲嶅鍏冪礌,鏈夊厛鍚庨『鎵?Set閲岄潰涓嶅厑璁告湁閲嶅鐨勫厓绱?鑰屼笖鏃犲簭,Map聽淇濆瓨key-value鍊硷紝value鍙鍊笺€?

9.聽java甯歌鐨勬暟鎹被鍨嬫槸浠€涔堝拰瀵瑰簲鐨勫寘瑁呯被鏄粈涔堬紵java鐨勯殣寮忕被鍨嬶紵assert浠€涔堟椂鍊欎娇鐢紵

(1)int,聽double,聽float,聽long,聽short,聽boolean,聽byte,聽char

(2)Integer.Double,Float,Long,Short,Boolean,Byte,Characher.

(3)java鐨勯殣寮忕被鍨嬫槸int,byte,short,char閮藉彲浠ラ殣鍚浆鎹负int聽,

(4)涓€鑸潵璇达紝assertion鐢ㄤ簬淇濊瘉绋嬪簭鏈€鍩烘湰銆佸叧閿殑姝g‘鎬с€俛ssertion妫€鏌ラ€氬父鍦ㄥ紑鍙戝拰娴嬭瘯鏃跺紑鍚€備负浜嗘彁楂樻€ц兘锛屽湪杞欢鍙戝竷鍚庯紝assertion妫€鏌ラ€氬父鏄叧闂殑;

10.聽object绫诲瀷涓湁鍝簺鏂规硶锛?

(1)equals()銆乭ashCode()銆亀ait()銆乼oString(),finalize(),notify(),notifyAll(),wait(),

11.聽final銆乫inallly鍜宖inalize鐨勫尯鍒紵

(1)final聽鐢ㄤ簬澹版槑灞炴€э紝鏂规硶鍜岀被锛屽垎鍒〃绀哄睘鎬т笉鍙彉锛屾柟娉曚笉鍙鐩栵紝绫讳笉鍙户鎵裤€偮?

鍐呴儴绫昏璁块棶灞€閮ㄥ彉閲忥紝灞€閮ㄥ彉閲忓繀椤诲畾涔夋垚final绫诲瀷锛屼緥濡傦紝涓€娈典唬鐮佲€︹€?

finally鏄紓甯稿鐞嗚鍙ョ粨鏋勭殑涓€閮ㄥ垎锛岃〃绀烘€绘槸鎵ц銆?

finalize鏄疧bject绫荤殑涓€涓柟娉曪紝鍦ㄥ瀮鍦炬敹闆嗗櫒鎵ц鐨勬椂鍊欎細璋冪敤琚洖鏀跺璞$殑姝ゆ柟娉?

12.聽LinkedList鍜孉rrayList鐨勫尯鍒紵缁ф壙鐨勬帴鍙o紵

(1)ArrayList鏄娇鐢ㄦ暟缁勬柟寮忓瓨鍌ㄦ暟鎹紝姝ゆ暟缁勫厓绱犳暟澶т簬瀹為檯瀛樺偍鐨勬暟鎹互渚垮鍔犲拰鎻掑叆鍏冪礌锛屽畠浠兘鍏佽鐩存帴鎸夊簭鍙风储寮曞厓绱狅紝浣嗘槸鎻掑叆鍏冪礌瑕佹秹鍙婃暟缁勫厓绱犵Щ鍔ㄧ瓑鍐呭瓨鎿嶄綔锛屾墍浠ョ储寮曟暟鎹揩鑰屾彃鍏ユ暟鎹參

LinkedList浣跨敤鍙屽悜閾捐〃瀹炵幇瀛樺偍锛屾寜搴忓彿绱㈠紩鏁版嵁闇€瑕佽繘琛屽墠鍚戞垨鍚庡悜閬嶅巻锛屼絾鏄彃鍏ユ暟鎹椂鍙渶瑕佽褰曟湰椤圭殑鍓嶅悗椤瑰嵆鍙紝鎵€浠ユ彃鍏ラ€熷害杈冨揩銆?

LinkedList涔熸槸绾跨▼涓嶅畨鍏ㄧ殑锛孡inkedList鎻愪緵浜嗕竴浜涙柟娉曪紝浣垮緱LinkedList鍙互琚綋浣滃爢鏍堝拰闃熷垪鏉ヤ娇鐢?

(2)list鎺ュ彛;ArrayList鏄渶甯哥敤鐨凩ist瀹炵幇绫伙紝鍐呴儴鏄€氳繃鏁扮粍瀹炵幇鐨勶紝瀹冨厑璁稿鍏冪礌杩涜蹇€熼殢鏈鸿闂?聽Vector涓嶢rrayList涓€鏍凤紝涔熸槸閫氳繃鏁扮粍瀹炵幇鐨勶紝涓嶅悓鐨勬槸瀹冩敮鎸佺嚎绋嬬殑鍚屾锛屽嵆鏌愪竴鏃跺埢鍙湁涓€涓嚎绋嬭兘澶熷啓Vector锛岄伩鍏嶅绾跨▼鍚屾椂鍐欒€屽紩璧风殑涓嶄竴鑷存€э紝浣嗗疄鐜板悓姝ラ渶瑕佸緢楂樼殑鑺辫垂锛屽洜姝わ紝璁块棶瀹冩瘮璁块棶ArrayList鎱€侺inkedList鏄敤閾捐〃缁撴瀯瀛樺偍鏁版嵁鐨勶紝寰堥€傚悎鏁版嵁鐨勫姩鎬佹彃鍏ュ拰鍒犻櫎锛岄殢鏈鸿闂拰閬嶅巻閫熷害姣旇緝鎱€傚彟澶栵紝鎺ュ彛涓病鏈夊畾涔夌殑鏂规硶聽get锛宺emove锛宨nsertList锛屼笓闂ㄧ敤浜庢搷浣滆〃澶村拰琛ㄥ熬鍏冪礌锛屽彲浠ュ綋浣滃爢鏍堛€侀槦鍒楀拰鍙屽悜闃熷垪浣跨敤銆侺inkedList娌℃湁鍚屾鏂规硶銆傚鏋溌犲涓嚎绋嬪悓鏃惰闂竴涓狶ist锛屽垯蹇呴』鑷繁瀹炵幇璁块棶鍚屾銆備竴绉嶈В鍐虫柟娉曟槸鍦ㄥ垱寤郝燣ist鏃舵瀯閫犱竴涓悓姝ョ殑List锛?

13.聽int鍜宻tring鏄浣曡浆鍖栫殑锛?

(1)int聽i聽=聽Integer.parseInt([String]);i聽=聽Integer.parseInt([String],[int聽radix]);鎴栬€卛nt聽i聽=聽Integer.valueOf(my_str).intValue();int杞琒tringString聽s聽=聽String.valueOf(i);String聽s聽=聽Integer.toString(i);String聽s聽=聽""聽+聽i;

15.聽璋堣皥浣犲闈㈠悜瀵硅薄缂栫▼鐨勭悊瑙o紵

(1)Java璇█鏄函绮圭殑闈㈠悜瀵硅薄鐨勭▼搴忚璁¤瑷€锛岃繖涓昏琛ㄧ幇涓篔ava瀹屽叏鏀寔闈㈠悜瀵硅薄鐨勪笁绉嶅熀鏈壒寰侊細缁ф壙銆佸皝瑁呭拰澶氭€併€侸ava璇█瀹屽叏浠ュ璞′负涓績锛孞ava绋嬪簭鐨勬渶灏忕▼搴忓崟浣嶆槸绫伙紝鏁翠釜Java绋嬪簭鐢变竴涓竴涓殑绫荤粍鎴?Java瀹屽叏鏀寔浣跨敤瀵硅薄銆佺被銆佺户鎵裤€佸皝瑁呫€佹秷鎭瓑鍩烘湰姒傚康鏉ヨ繘琛岀▼搴忚璁★紝鍏佽浠庣幇瀹炰笘鐣屼腑瀹㈣瀛樺湪鐨勪簨鐗╋紙鍗冲璞★級鍑哄彂鏉ユ瀯閫犺蒋浠剁郴缁燂紝鍦ㄧ郴缁熸瀯閫犱腑聽灏藉彲鑳借繍鐢ㄤ汉绫荤殑鑷劧鎬濈淮鏂瑰紡銆傚疄闄呬笂锛岃繖浜涗紭鍔挎槸鎵€鏈夐潰鍚戝璞$紪绋嬭瑷€鐨勫叡鍚岀壒寰併€傝€岄潰鍚戝璞$殑鏂瑰紡瀹為檯涓婄敱OOA锛堥潰鍚戝璞″垎鏋愶級銆丱OD锛堥潰鍚戝璞÷犺璁★級鍜孫OP锛堥潰鍚戝璞$紪绋嬶級涓変釜閮ㄥ垎鏈夋満缁勬垚锛屽叾涓紝OOA鍜孫OD鐨勭粨鏋勯渶瑕佷娇鐢ㄤ竴绉嶆柟寮忔潵鎻忚堪骞惰褰曪紝鐩墠涓氱晫缁熶竴閲囩敤UML锛堢粺涓€寤烘ā璇█锛夋潵聽鎻忚堪骞惰褰昈OA鍜孫OD鐨勭粨鏋溿€傜洰鍓峌ML鐨勬渶鏂扮増鏄?.0瀹冧竴鍏卞寘鎷?3绉嶇被鍨嬬殑鍥惧舰锛屼娇鐢ㄨ繖13绉嶅浘褰腑鐨勬煇浜涘氨鍙互寰堝ソ鍦版弿杩板苟璁板綍杞欢鍒嗘瀽銆佽聽璁$殑缁撴灉

16.聽閲嶅啓鍜岄噸杞界殑鍖哄埆锛?

(1)閲嶈浇Overload琛ㄧず鍚屼竴涓被涓彲浠ユ湁澶氫釜鍚嶇О鐩稿悓鐨勬柟娉曪紝浣嗚繖浜涙柟娉曠殑鍙傛暟鍒楄〃鍚勪笉鐩稿悓锛堝嵆鍙傛暟涓暟鎴栫被鍨嬩笉鍚岋級;

(2)閲嶅啓Override琛ㄧず瀛愮被涓殑鏂规硶鍙互涓庣埗绫讳腑鐨勬煇涓柟娉曠殑鍚嶇О鍜屽弬鏁板畬鍏ㄧ浉鍚岋紝閫氳繃瀛愮被鍒涘缓鐨勫疄渚嬪璞¤皟鐢ㄨ繖涓柟娉曟椂锛屽皢璋冪敤瀛愮被涓殑瀹氫箟鏂规硶锛岃繖鐩稿綋浜庢妸鐖剁被涓畾涔夌殑閭d釜瀹屽叏鐩稿悓鐨勬柟娉曠粰瑕嗙洊浜嗭紝杩欎篃鏄潰鍚戝璞$紪绋嬬殑澶氭€佹€х殑涓€绉嶈〃鐜?鍙兘姣旂埗绫绘姏鍑烘洿灏戠殑寮傚父锛屾垨鑰呮槸鎶涘嚭鐖剁被鎶涘嚭鐨勫紓甯哥殑瀛愬紓甯?瀛愮被鏂规硶鐨勮闂潈闄愬彧鑳芥瘮鐖剁被鐨勬洿澶э紝涓嶈兘鏇村皬銆傚鏋滅埗绫荤殑鏂规硶鏄痯rivate绫诲瀷锛岄偅涔堬紝瀛愮被鍒欎笉瀛樺湪瑕嗙洊鐨勯檺鍒讹紝鐩稿綋浜庡瓙绫讳腑澧炲姞浜嗕竴涓叏鏂扮殑鏂规硶;

17.聽sleep&wait鍖哄埆鍜岃仈绯伙紵

(1)杩欎袱涓柟娉曟潵鑷笉鍚岀殑绫诲垎鍒槸锛宻leep鏉ヨ嚜Thread绫伙紝鍜寃ait鏉ヨ嚜Object绫?sleep鏄疶hread鐨勯潤鎬佺被鏂规硶锛岃皝璋冪敤鐨勮皝鍘荤潯瑙夛紝鍗充娇鍦╝绾跨▼閲岃皟鐢ㄤ簡b鐨剆leep鏂规硶锛屽疄闄呬笂杩樻槸a鍘荤潯瑙夛紝瑕佽b绾跨▼鐫¤瑕佸湪b鐨勪唬鐮佷腑璋冪敤sleep銆?

(2)鏈€涓昏鏄痵leep鏂规硶娌℃湁閲婃斁閿侊紝鑰寃ait鏂规硶閲婃斁浜嗛攣锛屼娇寰楀叾浠栫嚎绋嬪彲浠ヤ娇鐢ㄥ悓姝ユ帶鍒跺潡鎴栬€呮柟娉曘€俿leep涓嶅嚭璁╃郴缁熻祫婧愶紱wait鏄繘鍏ョ嚎绋嬬瓑寰呮睜绛夊緟锛屽嚭璁╃郴缁熻祫婧愶紝鍏朵粬绾跨▼鍙互鍗犵敤CPU銆備竴鑸瑆ait涓嶄細鍔犳椂闂撮檺鍒讹紝鍥犱负濡傛灉wait绾跨▼鐨劼犺繍琛岃祫婧愪笉澶燂紝鍐嶅嚭鏉ヤ篃娌$敤锛岃绛夊緟鍏朵粬绾跨▼璋冪敤notify/notifyAll鍞ら啋绛夊緟姹犱腑鐨勬墍鏈夌嚎绋嬶紝鎵嶄細杩涘叆灏辩华闃熷垪绛夊緟OS鍒嗛厤绯荤粺璧勬簮銆偮爏leep(milliseconds)鍙互鐢ㄦ椂闂存寚瀹氫娇瀹冭嚜鍔ㄥ敜閱掕繃鏉ワ紝濡傛灉鏃堕棿涓嶅埌鍙兘璋冪敤interrupt()寮鸿鎵撴柇;

18.聽string銆乻tringbuffer鍜宻tringbuilder鐨勫尯鍒紵鍝釜鏇村畨鍏紵涓轰粈涔堬紵hashmap涓轰粈涔堟煡璇㈢殑姣旇緝蹇紵

(1)JAVA骞冲彴鎻愪緵浜嗕袱涓被锛歋tring鍜孲tringBuffer锛屽畠浠彲浠ュ偍瀛樺拰鎿嶄綔瀛楃涓诧紝鍗冲寘鍚涓瓧绗︾殑瀛楃鏁版嵁銆傝繖涓猄tring绫绘彁渚涗簡鏁板€间笉鍙敼鍙樼殑瀛楃涓层€傝€岃繖涓猄tringBuffer绫绘彁渚涚殑瀛楃涓茶繘琛屼慨鏀广€傚綋浣犵煡閬撳瓧绗︽暟鎹鏀瑰彉鐨勬椂鍊欎綘灏卞彲浠ヤ娇鐢⊿tringBuffer銆傚吀鍨嬪湴锛屼綘鍙互浣跨敤StringBuffers鏉ュ姩鎬佹瀯閫犲瓧绗︽暟鎹€傚彟澶栵紝String瀹炵幇浜唀quals鏂规硶;鑰孲tringBuffer娌℃湁瀹炵幇equals鏂规硶锛屾墍浠ワ紝new聽StringBuffer(鈥渁bc鈥?.equals(new聽StringBuffer(鈥渁bc鈥?鐨勭粨鏋滀负false銆?

(2)StringBuffer绾跨▼瀹夊叏鐨勫彲鍙樺瓧绗﹀簭鍒椼€備竴涓被浼间簬聽String聽鐨勫瓧绗︿覆缂撳啿鍖猴紝浣嗕笉鑳戒慨鏀?閫氳繃鏌愪簺鏂规硶璋冪敤鍙互鏀瑰彉璇ュ簭鍒楃殑闀垮害鍜屽唴瀹癸紝鍙皢瀛楃涓茬紦鍐插尯瀹夊叏鍦扮敤浜庡涓嚎绋嬨€傚彲浠ュ湪蹇呰鏃跺杩欎簺鏂规硶杩涜鍚屾锛屽洜姝や换鎰忕壒瀹氬疄渚嬩笂鐨勬墍鏈夋搷浣滃氨濂藉儚鏄互涓茶椤哄簭鍙戠敓鐨勶紝璇ラ『搴忎笌鎵€娑夊強鐨勬瘡涓嚎绋嬭繘琛岀殑鏂规硶璋冪敤椤哄簭涓€鑷?

(3)StringBuilder涓€涓彲鍙樼殑瀛楃搴忓垪銆傛绫绘彁渚涗竴涓笌聽StringBuffer聽鍏煎鐨劼燗PI锛屼絾涓嶄繚璇佸悓姝ャ€傝绫昏璁捐鐢ㄤ綔聽StringBuffer聽鐨勪竴涓畝鏄撴浛鎹紝鐢ㄥ湪瀛楃涓茬紦鍐插尯琚崟涓嚎绋嬩娇鐢ㄧ殑鏃跺€欙紙杩欑鎯呭喌寰堟櫘閬嶏級銆傦紙濡傛灉鍙兘锛屽缓璁紭鍏堥噰鐢ㄨ绫伙紝鍥犱负鍦ㄥぇ澶氭暟瀹炵幇涓紝瀹冩瘮聽StringBuffer聽瑕佸揩銆備絾灏喡燬tringBuilder聽鐨勫疄渚嬬敤浜庡涓嚎绋嬫槸涓嶅畨鍏ㄧ殑銆傚鏋滈渶瑕佽繖鏍风殑鍚屾锛屽垯寤鸿浣跨敤聽StringBuffer銆傦級;

(4)HashMap鏄疕ashtable鐨勮交閲忕骇瀹炵幇锛堥潪鍚屾闈炵嚎绋嬪畨鍏ㄧ殑瀹炵幇锛夛紝浠栦滑閮藉畬鎴愪簡Map鎺ュ彛锛屼富瑕佸尯鍒湪浜嶩ashMap鍏佽绌猴紙null锛夐敭鍊硷紙key锛?鐢变簬闈炵嚎绋嬪畨鍏紝鍦ㄥ彧鏈変竴涓嚎绋嬭闂殑鎯呭喌涓嬶紝鏁堢巼瑕侀珮浜嶩ashtable銆?

19.聽hashmap鐨勬暟缁勬槸hashcode瀹氫綅鐨勶紝鏈夊緢澶歬ey寰楀埌鐨刪ashcode鏄浉鍚岀殑锛岃繖鏃跺€欏浣曞畾浣嶏紵

(1)Java閲囩敤浜嗗搱甯岃〃鐨勫師鐞嗐€傚搱甯岀畻娉曚篃绉颁负鏁e垪绠楁硶锛屽氨鏄泦鍚堥鍏堜細璋冪敤璇ュ璞$殑hashcode鏂规硶;鏄皢鏁版嵁渚濈壒瀹氱畻娉曠洿鎺ユ寚瀹氬埌涓€涓湴鍧€涓娿€傚叧浜庡搱甯岀畻娉曪紝杩欓噷灏变笉璇︾粏浠嬬粛銆傚彲浠ヨ繖鏍风畝鍗曠悊瑙o紝hashCode鏂规硶瀹為檯涓婅繑鍥炵殑灏辨槸瀵硅薄瀛樺偍浣嶇疆鐨勬槧鍍?hashcode鐩稿悓浣嗘槸瀵硅薄骞朵笉鍚?鎵€鏈夊瓨鍌ㄤ綅缃篃涓嶅悓;瀵逛簬List闆嗗悎銆佹暟缁勮€岃█锛屼粬灏辨槸涓€涓疮璧橈紝涓嶉噸瑕侊紱浣嗘槸瀵逛簬HashMap銆丠ashSet銆丠ashTable鑰岃█锛屽畠鍙樺緱寮傚父閲嶈銆?

20.聽string鏄惁鏄熀鏈暟鎹被鍨嬶紵int鍜宻tring鏄浣曡浆鍖栫殑锛?

(1)鍩烘湰鏁版嵁绫诲瀷鍖呮嫭byte銆乮nt銆乧har銆乴ong銆乫loat銆乨ouble銆乥oolean鍜宻hort;java.lang.String绫绘槸final绫诲瀷鐨勶紝鍥犳涓嶅彲浠ョ户鎵胯繖涓被銆佷笉鑳戒慨鏀硅繖涓被銆備负浜嗘彁楂樻晥鐜囪妭鐪佺┖闂达紝鎴戜滑搴旇鐢⊿tringBuffer绫?

(2)int聽i聽=聽Integer.parseInt([String]);i聽=聽Integer.parseInt([String],[int聽radix]);鎴栬€卛nt聽i聽=聽Integer.valueOf(my_str).intValue();int杞琒tringString聽s聽=聽String.valueOf(i);String聽s聽=聽Integer.toString(i);String聽s聽=聽""聽+聽i;

涓壜燡ava聽Web

1.聽Jsp椤甸潰渚垮埄闆嗗悎锛?

(1)List<String>聽names聽=聽new聽LinkedList<String>();

(2)Set<String>聽set聽=聽new聽TreeSet<String>();

(3)Map<String,聽String>聽map聽=聽new聽HashMap<String,聽String>();

2.聽tomcat鏍稿績椤圭洰锛歵omacate鍑虹幇涔辩爜濡備綍瑙e喅锛熷浣曞鍔爐omcat鍜宩dk鐨勫唴瀛橈紵jdk鐨勭増鏈紵

(1)Java鐨勫唴鏍稿拰class鏂囦欢鏄熀浜巙nicode鐨勶紝杩欎娇Java绋嬪簭鍏锋湁鑹ソ鐨勮法骞冲彴鎬э紝浣嗕篃甯︽潵浜嗕竴浜涗腑鏂囦贡鐮侀棶棰樼殑楹荤儲銆傚師鍥犱富瑕佹湁涓ゆ柟闈紝Java鍜孞SP鏂囦欢鏈韩缂栬瘧鏃朵骇鐢熺殑涔辩爜闂鍜孞ava绋嬪簭浜庡叾浠栧獟浠嬩氦浜掍骇鐢熺殑涔辩爜闂銆?

(2)鏇存敼聽D:\Tomcat\conf\server.xml锛屾寚瀹氭祻瑙堝櫒鐨勭紪鐮佹牸寮忎负鈥滅畝浣撲腑鏂?鏂规硶鏄壘鍒奥爏erver.xml聽涓殑:<Connector聽port="8080"聽maxThreads="150"聽minSpareThreads="25"聽maxSpareThreads="75"

聽聽聽聽enableLookups="false"聽redirectPort="8443"聽acceptCount="100"

聽聽聽聽connectionTimeout="20000"聽disableUploadTimeout="true"聽URIEncoding='GBK'聽/>

(3)鍙︿竴绉嶆柟娉?鏇磋聽Java聽绋嬪簭锛屾垜鐨勭▼搴忔槸杩欐牱鐨勶細public聽class聽ThreeParams聽extends聽HttpServlet聽{

聽聽public聽void聽doGet(HttpServletRequest聽request,聽HttpServletResponse聽response)

聽聽聽throws聽ServletException,聽IOException聽{

聽聽聽聽聽聽response.setContentType("text/html;聽charset=GBK");

(4)澧炲姞tomcat鍐呭瓨鐨勬柟娉?linux涓嬶紝鍦ㄦ枃浠秢tomcat_home}/bin/catalina.sh鐨勫墠闈紝澧炲姞濡備笅璁剧疆锛歋ET聽JAVA_OPTS=-Xms512m聽-Xmx1024m;琛ㄧず鍒濆鍖栧唴瀛樹负512MB锛屽彲浠ヤ娇鐢ㄧ殑鏈€澶у唴瀛樹负1024MB;windows涓嬶紝鍦╰omcat_home}/bin/catalina.bat鐨勫墠闈紝澧炲姞濡備笅璁剧疆锛歋ET聽JAVA_OPTS=-Xms512m聽-Xmx1024m;

(5)Jdk鐨勭増鏈?JDK鍒嗕负涓夌涓嶅悓鐨勭増鏈燡AVA聽SE(鏍囧噯鐗堬級Java聽EE锛堜紒涓氱増锛塉ava聽ME(寰瀷鐗?銆?

Java聽SE聽浠ュ墠绉颁负J2SE銆傚畠鍏佽寮€鍙戝拰閮ㄧ讲鍦ㄦ闈€佹湇鍔″櫒銆佸祵鍏ュ紡鐜鍜屽疄鏃剁幆澧冧腑浣跨敤鐨劼燡ava聽搴旂敤绋嬪簭銆侸ava聽SE鏄熀纭€鍖咃紝浣嗘槸涔熷寘鍚簡鏀寔聽Java聽Web聽鏈嶅姟寮€鍙戠殑绫伙紝骞朵负聽Java聽Platform锛孍nterprise聽Edition锛圝ava聽EE锛夋彁渚涘熀纭€銆?

JavaEE:杩欎釜鐗堟湰浠ュ墠绉颁负聽J2EE銆備紒涓氱増鏈府鍔╁紑鍙戝拰閮ㄧ讲鍙Щ妞嶃€佸仴澹€佸彲浼哥缉涓斿畨鍏ㄧ殑鏈嶅姟鍣ㄧ聽Java聽搴旂敤绋嬪簭銆侸ava聽EE聽鏄湪聽Java聽SE聽鐨勫熀纭€涓婃瀯寤虹殑锛屽畠鎻愪緵聽Web聽鏈嶅姟銆佺粍浠舵ā鍨嬨€佺鐞嗗拰閫氫俊聽API锛屽彲浠ョ敤鏉ュ疄鐜颁紒涓氱骇鐨勯潰鍚戞湇鍔′綋绯荤粨鏋勶紙service-oriented聽architecture锛孲OA锛夊拰聽Web聽2.0聽搴旂敤绋嬪簭銆?

JavaME:杩欎釜鐗堟湰浠ュ墠绉颁负聽J2ME銆侸ava聽ME聽涓哄湪绉诲姩璁惧鍜屽祵鍏ュ紡璁惧锛堟瘮濡傛墜鏈恒€丳DA銆佺數瑙嗘満椤剁洅鍜屾墦鍗版満锛変笂杩愯鐨勫簲鐢ㄧ▼搴忔彁渚涗竴涓仴澹笖鐏垫椿鐨勭幆澧冦€侸ava聽ME聽鍖呮嫭鐏垫椿鐨勭敤鎴风晫闈€佸仴澹殑瀹夊叏妯″瀷銆佽澶氬唴缃殑缃戠粶鍗忚浠ュ強瀵瑰彲浠ュ姩鎬佷笅杞界殑杩炵綉鍜岀绾垮簲鐢ㄧ▼搴忕殑涓板瘜鏀寔銆傚熀浜幝燡ava聽ME聽瑙勮寖鐨勫簲鐢ㄧ▼搴忓彧闇€缂栧啓涓€娆★紝灏卞彲浠ョ敤浜庤澶氳澶囷紝鑰屼笖鍙互鍒╃敤姣忎釜璁惧鐨勬湰鏈哄姛鑳姐€?

3.聽璋堣皥瀵筂VC鐨勭悊瑙d互鍙婂畠鐨勫伐浣滄祦绋嬶紱

(1)MVC鏄竴涓璁℃ā寮忥紝瀹冨己鍒舵€х殑浣垮簲鐢ㄧ▼搴忕殑杈撳叆銆佸鐞嗗拰杈撳嚭鍒嗗紑銆備娇鐢∕VC搴旂敤绋嬪簭琚垎鎴愪笁涓牳蹇冮儴浠讹細妯″瀷銆佽鍥俱€佹帶鍒跺櫒銆傚畠浠悇鑷鐞嗚嚜宸辩殑浠诲姟;

jsp+Servlet+JavaBean聽灏辨槸涓€绉嶅熀纭€鐨勫熀浜巑vc鐨勫紑鍙戞ā寮?鍦∕VC缁撴瀯涓紝妯″瀷锛圡odel锛変唬琛ㄥ簲鐢ㄧ▼搴忕殑鏁版嵁锛坉ata锛夊拰鐢ㄤ簬鎺у埗璁块棶鍜屼慨鏀硅繖浜涙暟鎹殑涓氬姟瑙勫垯锛坆usiness聽rule锛夈€傞€氬父妯″瀷琚敤鏉ヤ綔涓哄鐜板疄涓栫晫涓竴涓鐞嗚繃绋嬬殑杞欢杩戜技锛屽綋瀹氫箟涓€涓ā鍨嬫椂锛屽彲浠ラ噰鐢ㄤ竴鑸殑绠€鍗曠殑寤烘ā鎶€鏈€?

褰撴ā鍨嬪彂鐢熸敼鍙樻椂锛屽畠浼氶€氱煡瑙嗭紙View锛夛紝骞朵笖涓鸿鎻愪緵鏌ヨ妯″瀷鐩稿叧鐘舵€佺殑鑳藉姏銆傚悓鏃讹紝瀹冧篃涓烘帶鍒跺櫒锛圕ontroller锛夋彁渚涜闂皝瑁呭湪妯″瀷鍐呴儴鐨勫簲鐢ㄧ▼搴忓姛鑳界殑鑳藉姏銆?

涓€涓锛圴iew锛夌敤鏉ョ粍缁囨ā鍨嬬殑鍐呭銆傚畠浠庢ā鍨嬮偅閲岃幏寰楁暟鎹苟鎸囧畾杩欎簺鏁版嵁濡備綍琛ㄧ幇銆傚綋妯″瀷鍙樺寲鏃讹紝瑙嗚礋璐g淮鎸佹暟鎹〃鐜扮殑涓€鑷存€с€傝鍚屾椂灏嗙敤鎴疯姹傚憡鐭ユ帶鍒跺櫒锛圕ontroller锛夈€?

鎺у埗鍣紙Controller锛夊畾涔変簡搴旂敤绋嬪簭鐨勮涓猴紱瀹冭礋璐e鏉ヨ嚜瑙嗙殑鐢ㄦ埛瑕佹眰杩涜瑙i噴锛屽苟鎶婅繖浜涜姹傛槧灏勬垚鐩稿簲鐨勮涓猴紝杩欎簺琛屼负鐢辨ā鍨嬭礋璐e疄鐜般€傚湪鐙珛杩愯鐨凣UI瀹㈡埛绔紝鐢ㄦ埛瑕佹眰鍙兘鏄竴浜涢紶鏍囧崟鍑绘垨鏄彍鍗曢€夋嫨鎿嶄綔銆傚湪涓€涓猈eb搴旂敤绋嬪簭涓紝瀹冧滑鐨勮〃鐜板舰寮忓彲鑳芥槸涓€浜涙潵鑷鎴风鐨凣ET鎴朠OST鐨凥TTP璇锋眰銆傛ā鍨嬫墍瀹炵幇鐨勮涓哄寘鎷鐞嗕笟鍔″拰淇敼妯″瀷鐨勭姸鎬併€傛牴鎹敤鎴疯姹傚拰妯″瀷琛屼负鐨勭粨鏋滐紝鎺у埗鍣ㄩ€夋嫨涓€涓浣滀负瀵圭敤鎴疯姹傜殑搴旂瓟銆傞€氬父涓€缁勭浉鍏冲姛鑳介泦瀵瑰簲涓€涓帶鍒跺櫒銆?

宸ヤ綔娴佺▼锛氫竴涓姹傚彂閫佸埌action(浣滅敤锛歁VC涓殑C),action鎺у埗瀹冨彂閫佸埌鍝釜biz澶勭悊,濡傛灉鐢ㄥ埌鏁版嵁搴擄紝閭d箞biz鍦ㄨ繛鎺ao锛岀劧鍚庤繑鍥炶鐨勬暟鎹紝鏈€鍚巃ction鍦ㄨ繑鍥炲搷搴旂殑椤甸潰(姣斿jsp),鍥犱负鏄潰鍚戝璞?鎵€浠ュ疄浣揹omain鍦ㄤ腑闂翠紶閫掓暟鎹€?

4.聽post鍜実et浠ュ強get鍜宭oad鐨勫尯鍒紵浣跨敤get搴旀敞鎰忎粈涔堬紵

(1)Get聽鏂规硶閫氳繃聽URL聽璇锋眰鏉ヤ紶閫掔敤鎴风殑鏁版嵁锛屽皢琛ㄥ崟鍐呭悇瀛楁鍚嶇О涓庡叾鍐呭锛屼互鎴愬鐨勫瓧绗︿覆杩炴帴锛屼互URL瀛椾覆鏈韩浼犻€掓暟鎹弬鏁帮紝鍦ㄦ湇鍔″櫒绔彲浠ヤ粠'QUERY_STRING'杩欎釜鍙橀噺涓洿鎺ヨ鍙栵紝鏁堢巼杈冮珮锛屼絾缂轰箯瀹夊叏鎬э紝涔熸棤娉曟潵澶勭悊澶嶆潅鐨勬暟鎹紙鍙兘鏄瓧绗︿覆锛屾瘮濡傚湪servlet/jsp涓氨鏃犳硶澶勭悊鍙戞尌java鐨勬瘮濡倂ector涔嬬被鐨勫姛鑳?杈撶殑鏁版嵁閲忛潪甯稿皬锛屼竴鑸檺鍒跺湪聽2聽KB聽宸﹀彸锛夛紱

Post聽鏂规硶閫氳繃聽HTTP聽post聽鏈哄埗锛屽皢琛ㄥ崟鍐呭悇瀛楁鍚嶇О涓庡叾鍐呭鏀剧疆鍦燞TML聽琛ㄥご(header)鍐呬竴璧蜂紶閫佺粰鏈嶅姟鍣ㄧ浜ょ敱聽action聽灞炴€ц兘鎵€鎸囩殑绋嬪簭澶勭悊锛岃绋嬪簭浼氶€氳繃鏍囧噯杈撳叆(stdin)鏂瑰紡锛屽皢琛ㄥ崟鐨勬暟鎹鍑哄苟鍔犱互澶勭悊post鏂瑰紡锛氬氨浼犺緭鏂瑰紡璁插弬鏁颁細琚墦鍖呭湪鏁版嵁鎶ヤ腑浼犺緭锛屼粠CONTENT_LENGTH杩欎釜鐜鍙橀噺涓鍙栵紝渚夸簬浼犻€佽緝澶т竴浜涚殑鏁版嵁锛屽悓鏃跺洜涓轰笉鏆撮湶鏁版嵁鍦ㄦ祻瑙堝櫒鐨勫湴鍧€鏍忎腑锛屽畨鍏ㄦ€х浉瀵硅緝楂橈紝浣嗚繖鏍风殑澶勭悊鏁堢巼浼氬彈鍒板奖鍝嶃€傛帴鏀剁殑鏈€澶ф暟鎹湁闄愬埗锛孖IS聽4聽涓负聽80聽KB聽瀛楄妭锛孖IS聽5聽涓负聽100聽KB聽瀛楄妭

(1)寤鸿锛氶櫎闈炰綘鑲畾浣犳彁浜ょ殑鏁版嵁鍙互涓€娆℃€ф彁浜わ紝鍚﹀垯璇峰敖閲忕敤聽Post聽鏂规硶;Get聽鏂瑰紡鎻愪氦鏁版嵁锛屼細甯︽潵瀹夊叏闂;閫氳繃聽Get聽鏂瑰紡鎻愪氦鏁版嵁鏃讹紝鐢ㄦ埛鍚嶅拰瀵嗙爜灏嗗嚭鐜板湪聽URL聽涓?鎵€浠ヨ〃鍗曟彁浜ゅ缓璁娇鐢燩ost聽鏂规硶锛汸ost聽鏂规硶鎻愪氦鐨勮〃鍗曢〉闈㈠父瑙佺殑闂鏄紝璇ラ〉闈㈠鏋滃埛鏂扮殑鏃跺€欙紝浼氬脊鍑轰竴涓璇濇;

(2)Get涓巐oad鐨勫尯鍒?鎬讳箣瀵逛簬get鍜宭oad鐨勬牴鏈尯鍒紝涓€鍙ヨ瘽锛宧ibernate瀵逛簬load鏂规硶璁や负璇ユ暟鎹湪鏁版嵁搴撲腑涓€瀹氬瓨鍦紝鍙互鏀惧績鐨勪娇鐢ㄤ唬鐞嗘潵寤惰繜鍔犺浇锛屽鏋滃湪浣跨敤杩囩▼涓彂鐜颁簡闂锛屽彧鑳芥姏寮傚父锛涜€屽浜巊et鏂规硶锛宧ibernate涓€瀹氳鑾峰彇鍒扮湡瀹炵殑鏁版嵁锛屽惁鍒欒繑鍥瀗ull;

5.聽java鐨勪節澶у唴缃璞″拰鍥涘ぇ浣滅敤鍩燂紱

(1)request聽鐢ㄦ埛绔姹傦紝涓€娆¤姹?姝よ姹備細鍖呭惈鏉ヨ嚜GET/POST璇锋眰鐨勫弬鏁?

聽聽聽聽response聽缃戦〉浼犲洖鐢ㄦ埛绔殑鍥炲簲

聽聽聽聽pageContext聽缃戦〉鐨勫睘鎬ф槸鍦ㄨ繖閲岀鐞?

session聽涓庤姹傛湁鍏崇殑浼氳瘽鏈熉?

application聽servlet聽姝e湪鎵ц鐨勫唴瀹?

out聽鐢ㄦ潵浼犻€佸洖搴旂殑杈撳嚭聽

config聽servlet鐨勬瀯鏋堕儴浠?

page聽JSP缃戦〉鏈韩聽

exception聽閽堝閿欒缃戦〉锛屾湭鎹曟崏鐨勪緥澶?

鍥涘ぇ浣滅敤鍩?page瀵硅薄琛ㄧず褰撳墠涓€涓狫SP椤甸潰锛屽彲浠ョ悊瑙d负涓€涓璞℃湰韬?鏄唬琛ㄤ笌涓€涓〉闈㈢浉鍏崇殑瀵硅薄鍜屽睘鎬?涓€涓〉闈㈢敱涓€涓紪璇戝ソ鐨劼燡ava聽servlet聽绫昏〃绀?

request鏄唬琛ㄤ笌聽Web聽瀹㈡埛鏈哄彂鍑虹殑涓€涓姹傜浉鍏崇殑瀵硅薄鍜屽睘鎬с€備竴涓姹傚彲鑳借法瓒婂涓〉闈紝娑夊強澶氫釜聽Web聽缁勪欢锛堢敱浜幝爁orward聽鎸囦护鍜屄爄nclude聽鍔ㄤ綔鐨勫叧绯伙級;鐢ㄦ埛绔姹?

session鏄唬琛ㄤ笌鐢ㄤ簬鏌愪釜聽Web聽瀹㈡埛鏈虹殑涓€涓敤鎴蜂綋楠岀浉鍏崇殑瀵硅薄鍜屽睘鎬с€備竴涓燱eb聽浼氳瘽鍙互涔熺粡甯镐細璺ㄨ秺澶氫釜瀹㈡埛鏈鸿姹偮犱笌璇锋眰鏈夊叧鐨勪細璇濇湡聽

application鏄唬琛ㄤ笌鏁翠釜聽Web聽搴旂敤绋嬪簭鐩稿叧鐨勫璞″拰灞炴€с€傝繖瀹炶川涓婃槸璺ㄨ秺鏁翠釜聽Web聽搴旂敤绋嬪簭锛屽寘鎷涓〉闈€佽姹傚拰浼氳瘽鐨勪竴涓叏灞€浣滅敤鍩熉犳鍦ㄦ墽琛岀殑鍐呭

鍥浡燗jax

1.聽js閲岄潰鐨刡utton鏂规硶锛屾彁浜ょ殑鏃跺€欙紝濡備綍灏嗘暟鎹紶閫掑埌鏁版嵁搴擄紵

(1)鍗曞嚮button鐨勬椂鍊欙紝鍏堟墽琛屽鎴风鐨刯avascript浠g爜锛屽皢JavaScript閲岄潰鐨勫€艰祴鍊煎埌form琛ㄥ崟閲岋紝鐒跺悗閫氳繃琛ㄥ崟鎻愪氦鐨勬柟寮忓皢鏁版嵁鎻愪氦鍒板悗鍙帮紝浜ょ粰java鏂规硶澶勭悊,鐒跺悗璋冪敤涓氬姟灞傚拰鏁版嵁搴撲氦浜?

2.聽Ajax涓巎query鍖哄埆锛焌jax鍜宻ervelet鐢熷懡鍛ㄦ湡锛?

(1)鍖哄埆:Ajax鏄竴闂ㄦ妧鏈紝瀹冩彁渚涗簡寮傛鏇存柊鐨勬満鍒讹紝浣跨敤瀹㈡埛绔笌鏈嶅姟鍣ㄩ棿浜ゆ崲鏁版嵁鑰岄潪鏁翠釜椤甸潰鏂囨。锛屽疄鐜伴〉闈㈢殑灞€閮ㄦ洿鏂般€俲Query鏄竴涓鏋讹紝瀹冨JS(JS鏄竴闂ㄥ墠绔瑷€銆?杩涜浜嗗皝瑁咃紝浣垮叾鏇存柟渚夸娇鐢ㄣ€俲Query浣垮緱JS涓嶢jax鐨勪娇鐢ㄦ洿鏂逛究

jsp璐熻矗瀹㈡埛绔樉绀?

servlet璐熻矗鎺у埗锛岃浆鍚戠瓑

(2)鐢熷懡鍛ㄦ湡:Servlet聽鐢熷懡鍛ㄦ湡锛歋ervlet聽鍔犺浇--->瀹炰緥鍖?-->鏈嶅姟--->閿€姣?

init锛堬級锛氬湪Servlet鐨勭敓鍛藉懆鏈熶腑锛屼粎鎵ц涓€娆nit()鏂规硶銆傚畠鏄湪鏈嶅姟鍣ㄨ鍏ervlet鏃舵墽琛岀殑锛岃礋璐e垵濮嬪寲Servlet瀵硅薄銆傚彲浠ラ厤缃湇鍔″櫒锛屼互鍦ㄥ惎鍔ㄦ湇鍔″櫒鎴栧鎴锋満棣栨璁块棶Servlet鏃惰鍏ervlet銆?

service锛堬級锛氬畠鏄疭ervlet鐨勬牳蹇冿紝璐熻矗鍝嶅簲瀹㈡埛鐨勮姹傘€傛瘡褰撲竴涓鎴疯姹備竴涓狧ttpServlet瀵硅薄锛岃瀵硅薄鐨凷ervice()鏂规硶聽灏辫璋冪敤锛岃€屼笖浼犻€掔粰杩欎釜鏂规硶涓€涓€滆姹傗€濓紙ServletRequest锛夊璞″拰涓€涓€滃搷搴斺€濓紙ServletResponse锛夊璞′綔涓哄弬鏁般€傚湪聽HttpServlet涓凡瀛樺湪Service()鏂规硶銆傞粯璁ょ殑鏈嶅姟鍔熻兘鏄皟鐢ㄤ笌HTTP璇锋眰鐨勬柟娉曠浉搴旂殑do鍔熻兘銆?

destroy锛堬級锛毬犱粎鎵ц涓€娆★紝鍦ㄦ湇鍔″櫒绔仠姝笖鍗歌浇Servlet鏃舵墽琛岃鏂规硶銆傚綋Servlet瀵硅薄閫€鍑虹敓鍛藉懆鏈熸椂锛岃礋璐i噴鏀惧崰鐢ㄧ殑璧勬簮銆備竴涓燬ervlet鍦ㄨ繍琛宻ervice()鏂规硶鏃跺彲鑳戒細浜х敓鍏朵粬鐨勭嚎绋嬶紝鍥犳闇€瑕佺‘璁ゅ湪璋冪敤destroy()鏂规硶鏃讹紝杩欎簺绾跨▼宸茬粡缁堟鎴栧畬鎴愩€?

Ajax:ajax璐熻矗瀹㈡埛绔笌鏈嶅姟鍣ㄧ洿鎺ヨ仈绯伙紝鑰屼笉鐢╦sp鎻愪氦琛ㄥ崟銆備竴鑸琣jax涓巗ervlet鑱旂郴锛屼篃鍙洿鎺ヤ笌javabean鑱旂郴

3.聽Jquery鐨勫父鐢ㄦ爣绛撅紝甯哥敤閫夋嫨鍣ㄣ€?

(1)鏍囩:聽jquery甯哥敤鏍囩聽(document)//閫夋嫨鏁翠釜鏂囨。瀵硅薄;(document)//閫夋嫨鏁翠釜鏂囨。瀵硅薄;('#myId')聽//閫夋嫨ID涓簃yId鐨勭綉椤靛厓绱?聽(鈥瞕iv.myClass鈥?//閫夋嫨class涓簃yClass鐨刣iv鍏冪礌;(鈥瞕iv.myClass鈥?//閫夋嫨class涓簃yClass鐨刣iv鍏冪礌;('input[name=first]')聽//聽閫夋嫨name灞炴€х瓑浜巉irst鐨刬nput鍏冪礌;

(2)甯哥敤鍑芥暟:val()聽鐢ㄦ潵鑾峰緱value灞炴€х殑鍊?html()聽鑾峰緱鍏冪礌鏍囩鍐呯殑鎵€鏈変俊鎭?鍖呰9鏍囩鍜屾枃鏈?鐩稿綋浜嶥OM涓殑innerHTML;size()鑾峰緱闆嗗悎/鏁扮粍鐨勯暱搴?

(2)甯哥敤閫夋嫨鍣?聽鍩烘湰閫夋嫨鍣?聽灞傛閫夋嫨鍣?聽杩囨护閫夋嫨鍣?聽琛ㄥ崟閫夋嫨鍣?

(2)#id聽:聽鏍规嵁缁欏畾鐨刬d鍖归厤涓€涓厓绱狅紝杩斿洖鍗曚釜鍖归厤鐨勫厓绱狅細

(3).class:鏍规嵁缁欏畾鐨勭被鍚嶅尮閰嶅厓绱?杩斿洖闆嗗悎鍏冪礌

(4)*锛氬尮閰嶆墍鏈夌殑鍏冪礌,杩斿洖闆嗗悎鍏冪礌

(5)elements锛氭牴鎹粰瀹氱殑鍏冪礌鍚嶅尮閰嶅厓绱狅紝杩斿洖闆嗗悎鍏冪礌

(6)Selector1閫夋嫨鍣ㄥ尮閰嶏細灏嗘瘡涓€涓€夋嫨鍣ㄥ尮閰嶅埌鐨勫厓绱犲悎骞跺悗涓€璧疯繑鍥?

4.聽JQ(灏佽ajax锛涘紓姝ラ€氳锛涗粠鍓嶅彴浼犺繃鍘籮ason锛屽悗鍙板浣曡В鏋愶紵

(1)method锛氳姹傛柟寮?GET/POST)

*銆€銆€url锛氱洰鏍嘦RL

*銆€銆€content锛氱敤POST鏂瑰紡鍙戝嚭璇锋眰鏃舵兂浼犵粰鏈嶅姟鍣ㄧ殑鏁版嵁锛?

*銆€銆€銆€銆€銆€銆€銆€銆€銆€鏁版嵁浠ユ煡璇㈠瓧涓茬殑鏂瑰紡鍒楀嚭锛屽锛歯ame=value&anothername=othervalue銆?

*銆€銆€銆€銆€銆€銆€鑻ョ敤GET鏂瑰紡锛氳浼爊ull

*銆€銆€responseType锛氬搷搴斿唴瀹圭殑鏍煎紡(text/xml)

*銆€銆€callback锛氳鍥炶皟鐨勫嚱鏁?

(2)寮傛閫氳:聽聽

I:鍒濆鍖栧璞″苟鍙戦€乆MLHttpRequest璇锋眰(閽堝IE7.0銆?.0銆乫irefox銆乵ozillar銆乷pera銆乻afari娴忚鍣?var聽xmlhr=new聽XMLHttpRequest;閽堝IE5.0銆?.5銆?.0,var聽xmlhr=new聽ActiveXObject(聽);)

II:鎸囧畾鍝嶅簲澶勭悊鍑芥暟(onreadystatechange)

III:鍙戝嚭HTTP璇锋眰(send)

IIII:澶勭悊鏈嶅姟鍣ㄨ繑鍥炵殑鏁版嵁(responseXML)

(3)瑙f瀽:棣栧厛锛屾垜浠鍦ㄥ墠鍙板紩鍏son鐨勮剼鏈紝浠ヤ究浜庢妸js瀵硅薄搴忓垪鍖?

<script聽type="text/javascript"聽src="/js/jquery.json-2.4.min.js"></script>

鐒跺悗鎴戜滑鍦ㄥ墠鍙板0鏄庝竴涓被,灏嗕綘瑕佷繚瀛樼殑鍊兼斁鍒扮被閲岄潰锛屾渶鍚庡簭鍒楀寲

鐒跺悗鎴戜滑鍦ㄥ悗鍙帮紝杩涜鍙嶅簭鍒楀寲锛屽苟浣跨敤鍊?鍥犱负鎴戜滑浣跨敤ajax鎵€浠ヨ鍦ㄥ悗鍙扮殑鏂规硶涓婂姞涓奫Ajax.AjaxMethod]鐗规€э紝骞朵笖鍦ㄤ綘鍓嶅彴鎵€鍦ㄩ〉闈㈢殑cs閲岄潰涔熻鍔犱笂Ajax鐨勬敞鍐?

浜斅犳鏋?

1.聽涓夊ぇ妗嗘灦浣跨敤鐨勭増鏈紵涓夊ぇ妗嗘灦鍚勬牳蹇冪粍浠跺強浣滅敤锛涘鏋滀笉鐢ㄤ笁澶ф鏋讹紝jdbc鑳戒笉鑳戒笅鍑烘潵锛?

(1)涓夊ぇ妗嗘灦鐨勭増鏈?struts聽2;聽spring聽3;聽hibernate聽3.3;

(2)缁勪欢鍙婁綔鐢?Java涓夊ぇ妗嗘灦涓昏鐢ㄦ潵鍋歐Eb搴旂敤;聽Struts涓昏璐熻矗琛ㄧず灞傜殑鏄剧ず;Spring鍒╃敤瀹冪殑IOC鍜孉OP鏉ュ鐞嗘帶鍒朵笟鍔★紙璐熻矗瀵规暟鎹簱鐨勬搷浣滐級;Hibernate涓昏鏄暟鎹寔涔呭寲鍒版暟鎹簱;

(3)Struts鐨勭粍浠?Struts瀵筂odel锛孷iew鍜孋ontroller閮芥彁渚涗簡瀵瑰簲鐨勭粍浠?

Model閮ㄥ垎锛氱敱JavaBean缁勬垚锛孉ctionForm鐢ㄤ簬灏佽鐢ㄦ埛鐨勮姹傚弬鏁帮紝灏佽鎴怉ctionForm瀵硅薄锛岃瀵硅薄琚獳ctionServlet杞彂缁橝ction锛孉ction鏍规嵁ActionFrom閲岄潰鐨勮姹傚弬鏁板鐞嗙敤鎴风殑璇锋眰銆侸avaBean鍒欏皝瑁呬簡搴曞眰鐨勪笟鍔¢€昏緫锛屽寘鎷暟鎹簱璁块棶绛夈€?

View閮ㄥ垎锛氳閮ㄥ垎閲囩敤JSP瀹炵幇銆係truts鎻愪緵浜嗕赴瀵岀殑鏍囩搴擄紝閫氳繃鏍囩搴撳彲浠ュ噺灏戣剼鏈殑浣跨敤锛岃嚜瀹氫箟鐨勬爣绛惧簱鍙互瀹炵幇涓嶮odel鐨勬湁鏁堜氦浜掞紝骞跺鍔犱簡鐜板疄鍔熻兘銆傚搴斾笂鍥剧殑JSP閮ㄥ垎銆?

Controller缁勪欢锛欳ontroller缁勪欢鏈変袱涓儴鍒嗙粍鎴愨€斺€旂郴缁熸牳蹇冩帶鍒跺櫒锛屼笟鍔¢€昏緫鎺у埗鍣ㄣ€偮犮€€銆€绯荤粺鏍稿績鎺у埗鍣紝瀵瑰簲涓婂浘鐨凙ctionServlet銆傝鎺у埗鍣ㄧ敱Struts妗嗘灦鎻愪緵锛岀户鎵縃ttpServlet绫伙紝鍥犳鍙互閰嶇疆鎴愭爣娉ㄧ殑Servlet銆傝鎺у埗鍣ㄨ礋璐f嫤鎴墍鏈夌殑HTTP璇锋眰锛岀劧鍚庢牴鎹敤鎴疯姹傚喅瀹氭槸鍚﹁杞粰涓氬姟閫昏緫鎺у埗鍣ㄣ€備笟鍔¢€昏緫鎺у埗鍣紝璐熻矗澶勭悊鐢ㄦ埛璇锋眰锛屾湰韬笉鍏峰澶勭悊鑳藉姏锛岃€屾槸璋冪敤Model鏉ュ畬鎴愬鐞嗐€傚搴擜ction閮ㄥ垎銆?

(4)Spring鐨勭粍浠?宸ュ巶绫籅eanFactory;鍙嶈浆鎺у埗IOC;闈㈠悜鍒囬潰缂栫▼AOP

Spring瀹炵幇浜嗗伐鍘傛ā寮忕殑宸ュ巶绫籅eanFactory,鍦ㄧ▼搴忎腑閫氬父BeanFactory鐨勫瓙绫籄pplicationContext銆係pring鐩稿綋浜庝竴涓ぇ鐨勫伐鍘傜被锛屽湪鍏堕厤缃枃浠朵腑閫氳繃<bean>鍏冪礌閰嶇疆鐢ㄤ簬鍒涘缓瀹炰緥瀵硅薄鐨勭被鍚嶅拰瀹炰緥瀵硅薄鐨勫睘鎬с€?

Spring鎻愪緵浜嗗IOC鑹ソ鏀寔锛孖OC鏄竴绉嶇紪绋嬫€濇兂锛屾槸涓€绉嶆灦鏋勮壓鏈紝鍒╃敤杩欑鎬濇兂鍙互寰堝ソ鍦板疄鐜版ā鍧椾箣闂寸殑瑙h€?

Spring鎻愪緵浜嗗AOP鎶€鏈殑鑹ソ灏佽锛屄燗OP绉颁负闈㈠悜鍒囬潰缂栫▼锛屽氨鏄郴缁熶腑鏈夊緢澶氬悇涓嶇浉骞茬殑绫荤殑鏂规硶锛屽湪杩欎簺浼楀鏂规硶涓鍔犲叆鏌愮绯荤粺鍔熻兘鐨勪唬鐮?渚嬪锛屽姞鍏ユ棩蹇楋紝鍔犲叆鏉冮檺鍒ゆ柇锛屽姞鍏ュ紓甯稿鐞嗭紝杩欑搴旂敤绉颁负AOP;

(5)Hibernate鐨勭粍浠?浜斾釜鏍稿績鎺ュ彛:session鎺ュ彛,sessionFactory鎺ュ彛,configuration鎺ュ彛,transaction鎺ュ彛,query鍜宑riteria鎺ュ彛;

Session鎺ュ彛锛氳礋璐f墽琛岃鎸佷箙鍖栧璞$殑CRUD鎿嶄綔(CRUD鐨勪换鍔℃槸瀹屾垚涓庢暟鎹簱鐨勪氦娴侊紝鍖呭惈浜嗗緢澶氬父瑙佺殑SQL璇彞銆?銆備絾闇€瑕佹敞鎰忕殑鏄疭ession瀵硅薄鏄潪绾跨▼瀹夊叏鐨勩€傚悓鏃讹紝Hibernate鐨剆ession涓嶅悓浜嶫SP搴旂敤涓殑HttpSession銆傝繖閲屽綋浣跨敤session杩欎釜鏈鏃讹紝鍏跺疄鎸囩殑鏄疕ibernate涓殑session锛岃€屼互鍚庝細灏咹ttpSession瀵硅薄绉颁负鐢ㄦ埛session銆?

SessionFactory鎺ュ彛锛氳礋璐e垵濮嬪寲Hibernate銆傚畠鍏呭綋鏁版嵁瀛樺偍婧愮殑浠g悊锛屽苟璐熻矗鍒涘缓Session瀵硅薄銆傝繖閲岀敤鍒颁簡宸ュ巶妯″紡銆?

Configuration鎺ュ彛锛氳礋璐i厤缃苟鍚姩Hibernate锛屽垱寤篠essionFactory瀵硅薄銆傚湪Hibernate鐨勫惎鍔ㄧ殑杩囩▼涓紝Configuration绫荤殑瀹炰緥棣栧厛瀹氫綅鏄犲皠鏂囨。浣嶇疆銆佽鍙栭厤缃紝鐒跺悗鍒涘缓SessionFactory瀵硅薄銆?

Transaction鎺ュ彛锛氳礋璐d簨鍔$浉鍏崇殑鎿嶄綔銆傚畠鏄彲閫夌殑锛屽紑鍙戜汉鍛樹篃鍙互璁捐缂栧啓鑷繁鐨勫簳灞備簨鍔″鐞嗕唬鐮併€?

Query鍜孋riteria鎺ュ彛锛氳礋璐f墽琛屽悇绉嶆暟鎹簱鏌ヨ銆傚畠鍙互浣跨敤HQL璇█鎴朣QL璇彞涓ょ琛ㄨ揪鏂瑰紡.

JDBC:

Connection聽cn=null;

PreparedStatement聽pst=null;

ResultSet聽rs=null;

Try{Class.forname(driverClassName);

cn=DriverManager.getStatement(鈥渟ql鈥?;

pst.setString(1,statementName);

rs=pst.executeQuery();

While(rs.next()){

System.out.println();}

}catch(Exception聽e){

e.printStackTrace();

}finally{

If(rs!=null){rs.close()};

If(pst!=null){pst.close()};

If(cn!=null){cn.close()};

}

2.聽hql璇彞鏄浣曟煡璇㈢殑锛焗ql璇彞涓唴鍒囧拰澶栧垏鐨勫尯鍒紵

(1):hql鏄潰鍚戝璞$殑绫诲悕,灞炴€у尯鍒嗗ぇ灏忓啓;from+浣犵殑瀹炰綋绫?

(2)鍐呭垏:鍒╃敤鍐呰繛鎺ュ彲鑾峰彇涓よ〃鐨勫叕鍏遍儴鍒嗙殑璁板綍;閲囩敤宸﹀杩炴帴鏌ヨ杩斿洖鐨勭粨鏋滈泦涓寘鍚殑鏄璞℃暟缁勶紝瀵硅薄鏁扮粍涓殑姣忎釜鍏冪礌瀛樻斁浜嗕竴瀵圭浉浜掑叧鑱旂殑Customer瀵硅薄鍜孫rder瀵硅薄锛岃€岃揩鍒囧乏澶栬繛鎺ヤ細杩斅犲洖Customer瀵硅薄锛屼笌Customer瀵硅薄鐩稿叧鑱旂殑Order瀵硅薄瀛樻斁鍦–ustomer瀵硅薄鐨勯泦鍚堝厓绱犲璞′腑锛岃繖灏辨槸杩垏宸﹀杩炴帴鍜屽乏澶栬繛鎺ユ煡璇⒙犵殑鍏朵腑涓€涓尯鍒?鍙︿竴涓尯鍒槸褰撲娇鐢ㄥ乏澶栬繛鎺ユ椂锛屽鍏宠仈瀵硅薄鐨勬绱細渚濈収瀹炰綋鏄犲皠閰嶇疆鏂囦欢鎵€鎸囧畾鐨勭瓥鐣ワ紝鑰屼笉浼氬儚杩垏宸﹀杩炴帴閭f牱蹇界暐瀹冿紝姣斿姝ゆ椂瀵笴ustomer瀵硅薄鍏宠仈鐨凮rder瀵硅薄閲囩敤寤惰繜鍔犺浇锛岄偅涔堝乏澶栬繛鎺ユ绱篃浼氫娇鐢ㄥ欢杩熷姞杞芥満鍒舵绱⒙燨rder瀵硅薄銆?

(3)閲囩敤杩垏鍐呰繛鎺ユ绱紝瀵归泦鍚堝厓绱犵殑妫€绱㈢瓥鐣ヤ互鍙婅繑鍥炵粨鏋滈泦涓殑瀵硅薄绫诲瀷閮介噰鐢ㄤ笌杩垏宸﹀杩炴帴涓€鏍风殑鏂瑰紡锛孮BC鏌ヨ涓嶆敮鎸佽揩鍒囧唴杩炴帴妫€绱?

3.聽澶氳〃鍏宠仈浠€涔堟儏鍐典笅鐢╤ashmap锛?

(1)Map鐢ㄤ簬淇濆瓨鍏锋湁鏄犲皠鍏崇郴鐨勬暟鎹紝Map閲屼繚瀛樼潃涓ょ粍鏁版嵁锛歬ey鍜寁alue锛屽畠浠兘鍙互浣夸换浣曞紩鐢ㄧ被鍨嬬殑鏁版嵁(class,interface,array聽)锛屼絾key涓嶈兘閲嶅銆傛墍浠ラ€氳繃鎸囧畾鐨刱ey灏卞彲浠ュ彇鍑哄搴旂殑value銆侶ashMap鍙互璁╀綘灏嗙┖鍊间綔涓轰竴涓〃鐨勬潯鐩殑key鎴杤alue锛孒ashMap鏈€澶氬彧鏈変竴涓猭ey鍊间负null锛屼絾鍙互鏈夋棤鏁板涓獀alue鍊间负null銆?

spring聽mvc宸ヤ綔鏈哄埗锛烳VC閲岄潰瑙嗗浘鐨勫ソ澶勶紵

宸ヤ綔鏈哄埗:瀹㈡埛绔姹傛彁浜ゅ埌DispatcherServlet

鐢盌ispatcherServlet鎺у埗鍣ㄦ煡璇竴涓垨澶氫釜HandlerMapping锛屾壘鍒板鐞嗚姹傜殑Controller

DispatcherServlet灏嗚姹傛彁浜ゅ埌Controller

Controller璋冪敤涓氬姟閫昏緫澶勭悊鍚庯紝杩斿洖ModelAndView

DispatcherServlet鏌ヨ涓€涓垨澶氫釜ViewResoler瑙嗗浘瑙f瀽鍣紝鎵惧埌ModelAndView鎸囧畾鐨勮鍥?

瑙嗗浘璐熻矗灏嗙粨鏋滄樉绀哄埌瀹㈡埛绔?

瑙嗗浘鐨勫ソ澶?瑙嗗浘瀵硅薄鐨勫畾涔夋瘮瀹炰綋瀹氫箟杩樿绠€鍗曪紝涓嶉渶瑕佹敞瑙o紝涓嶉渶瑕佹槧灏?浣嗘槸鍞竴涓嶅悓鐨勬槸鎴戜滑闇€瑕侀澶栨瀯閫犱竴涓甫鏈夊瓧娈靛垵濮嬪寲鐨勬瀯閫犲嚱鏁?

4.聽hibernat鍜宮ybaitis鐨勪紭鍔垮拰鍖哄埆锛焗aibernate鐨勭紦瀛樻満鍒舵湁娌℃湁浜嗚В杩囷紵濡備綍浣跨敤hibernate灏嗘暟鎹案涔呬繚瀛樺埌鏁版嵁搴撲腑锛焟ybaitates鏄浣曞疄鐜版煡璇㈢殑锛焗ibernate鏈夊緢澶氭暟鎹搷浣滄椂鍊欏浣曚紭鍖栵紵

聽聽聽(1)hibernate鐨勪紭鍔?路聽聽MyBatis鍙互杩涜鏇翠负缁嗚嚧鐨凷QL浼樺寲锛屽彲浠ュ噺灏戞煡璇㈠瓧娈点€偮仿犅燤yBatis瀹规槗鎺屾彙锛岃€孒ibernate闂ㄦ杈冮珮銆?

聽聽聽(2)mybaitis聽鐨勪紭鍔?路聽聽Hibernate鐨凞AO灞傚紑鍙戞瘮MyBatis绠€鍗曪紝Mybatis闇€瑕佺淮鎶QL鍜岀粨鏋滄槧灏勶紱路聽聽Hibernate瀵瑰璞$殑缁存姢鍜岀紦瀛樿姣擬yBatis濂斤紝瀵瑰鍒犳敼鏌ョ殑瀵硅薄鐨勭淮鎶よ鏂逛究锛浡仿犅燞ibernate鏁版嵁搴撶Щ妞嶆€у緢濂斤紝MyBatis鐨勬暟鎹簱绉绘鎬т笉濂斤紝涓嶅悓鐨勬暟鎹簱闇€瑕佸啓涓嶅悓SQL銆偮仿犅燞ibernate鏈夋洿濂界殑浜岀骇缂撳瓨鏈哄埗锛屽彲浠ヤ娇鐢ㄧ涓夋柟缂撳瓨銆侻yBatis鏈韩鎻愪緵鐨勭紦瀛樻満鍒朵笉浣炽€?

聽聽聽(3)鍖哄埆:Hibernate鍔熻兘寮哄ぇ锛屾暟鎹簱鏃犲叧鎬уソ锛孫/R鏄犲皠鑳藉姏寮猴紝濡傛灉浣犲Hibernate鐩稿綋绮鹃€氾紝鑰屼笖瀵笻ibernate杩涜浜嗛€傚綋鐨勫皝瑁咃紝閭d箞浣犵殑椤圭洰鏁翠釜鎸佷箙灞備唬鐮佷細鐩稿綋绠€鍗曪紝闇€瑕佸啓鐨勪唬鐮佸緢灏戯紝寮€鍙戦€熷害寰堝揩锛岄潪甯哥埥銆偮仿犅爄BATIS鍏ラ棬绠€鍗曪紝鍗冲鍗崇敤锛屾彁渚涗簡鏁版嵁搴撴煡璇㈢殑鑷姩瀵硅薄缁戝畾鍔熻兘锛岃€屼笖寤剁画浜嗗緢濂界殑SQL浣跨敤缁忛獙锛屽浜庢病鏈夐偅涔堥珮鐨勫璞℃ā鍨嬭姹傜殑椤圭洰鏉ヨ锛岀浉褰撳畬缇庛€?

聽聽(4)Hibernate涓€绾х紦瀛樻槸Session缂撳瓨锛屽埄鐢ㄥソ涓€绾х紦瀛樺氨闇€瑕佸Session鐨勭敓鍛藉懆鏈熻繘琛岀鐞嗗ソ銆傚缓璁湪涓€涓狝ction鎿嶄綔涓娇鐢ㄤ竴涓猄ession銆備竴绾х紦瀛橀渶瑕佸Session杩涜涓ユ牸绠$悊銆侶ibernate浜岀骇缂撳瓨鏄疭essionFactory绾х殑缂撳瓨銆偮燬essionFactory鐨勭紦瀛樺垎涓哄唴缃紦瀛樺拰澶栫疆缂撳瓨銆傚唴缃紦瀛樹腑瀛樻斁鐨勬槸SessionFactory瀵硅薄鐨勪竴浜涢泦鍚堝睘鎬у寘鍚殑鏁版嵁(鏄犲皠鍏冪礌鎹強棰勫畾SQL璇彞绛?,瀵逛簬搴旂敤绋嬪簭鏉ヨ,瀹冩槸鍙鐨勩€傚缃紦瀛樹腑瀛樻斁鐨勬槸鏁版嵁搴撴暟鎹殑鍓湰,鍏朵綔鐢ㄥ拰涓€绾х紦瀛樼被浼?浜岀骇缂撳瓨闄や簡浠ュ唴瀛樹綔涓哄瓨鍌ㄤ粙璐ㄥ,杩樺彲浠ラ€夌敤纭洏绛夊閮ㄥ瓨鍌ㄨ澶囥€備簩绾х紦瀛樼О涓鸿繘绋嬬骇缂撳瓨鎴朣essionFactory绾х紦瀛橈紝瀹冨彲浠ヨ鎵€鏈塻ession鍏变韩锛屽畠鐨勭敓鍛藉懆鏈熶即闅忕潃SessionFactory鐨勭敓鍛藉懆鏈熷瓨鍦ㄥ拰娑堜骸銆?

聽聽锛?锛塵ybatitis鐨勬煡璇?Mybatis鐨凷QL鏄墜鍔ㄧ紪鍐欑殑锛屾墍浠ュ彲浠ユ寜闇€姹傛寚瀹氭煡璇㈢殑瀛楁銆俶ybatis鏄暟鎹槧灏勫櫒锛堟暟鎹槧灏勫櫒灞傦細鐢ㄤ簬鍦ㄥ璞″拰鏁版嵁搴撲箣闂存惉杩愭暟鎹紝鍚屾椂淇濊瘉瀵硅薄銆佹暟鎹簱鍜屾暟鎹槧灏勫櫒灞傛湰韬浉瀵圭嫭绔嬨€侻artin聽Fowler聽銆婁紒涓氬簲鐢ㄦ灦鏋勬ā寮忋€嬶級鎶妔ql璇彞鐨勫弬鏁颁笌缁撴灉锛堝嵆杈撳叆涓庤緭鍑猴級鏄犲皠涓虹被銆備负濡備綍鍦ㄧ被鍜屾暟鎹簱闂村缓绔嬫槧灏勫甫鏉ヤ簡鏇村ぇ鐨勭伒娲绘€с€傚悓鏃朵篃鏇村ソ鐨勯殧绂讳簡鏁版嵁搴撹璁″拰搴旂敤绋嬪簭涓娇鐢ㄧ殑瀵硅薄妯″瀷銆?

聽聽(6)hibernate聽鐨勬寔涔呭寲:Hibernate閲囩敤浜嗘洿鑷劧鐨勯潰鍚戝璞$殑瑙嗚鏉ユ寔涔呭寲聽Java聽搴旂敤涓殑鏁版嵁銆備娇鐢燞ibernate聽鐨勫紑鍙戣€呭簲璇ユ€绘槸鍏虫敞瀵硅薄鐨勭姸鎬侊紙state锛夛紝涓嶅繀鑰冭檻聽SQL聽璇彞鐨勬墽琛屻€傝繖閮ㄥ垎缁嗚妭宸茬粡鐢甭燞ibernate聽鎺岀濡ュ綋锛屽彧鏈夊紑鍙戣€呭湪杩涜绯荤粺鎬ц兘璋冧紭鐨勬椂鍊欐墠闇€瑕佽繘琛屼簡瑙c€?

聽聽聽(6)mybatis鐨勮皟浼?MyBatis鍦⊿ession鏂归潰鍜孒ibernate鐨凷ession鐢熷懡鍛ㄦ湡鏄竴鑷寸殑锛屽悓鏍烽渶瑕佸悎鐞嗙殑Session绠$悊鏈哄埗銆侻yBatis鍚屾牱鍏锋湁浜岀骇缂撳瓨鏈哄埗銆偮燤yBatis鍙互杩涜璇︾粏鐨凷QL浼樺寲璁捐銆?

聽聽(7)hibernate濡備綍瀹炵幇浼樺寲:路聽聽鍒跺畾鍚堢悊鐨勭紦瀛樼瓥鐣ワ紱

路聽聽灏介噺浣跨敤寤惰繜鍔犺浇鐗规€э紱路聽聽閲囩敤鍚堢悊鐨凷ession绠$悊鏈哄埗锛浡仿犅犱娇鐢ㄦ壒閲忔姄鍙栵紝璁惧畾鍚堢悊鐨勬壒澶勭悊鍙傛暟锛坆atch_size锛?路聽聽杩涜鍚堢悊鐨凮/R鏄犲皠璁捐

5.聽spring銆乭ibernate銆丼truts鐨勫伐浣滃師鐞嗭紝涓轰粈涔堜娇鐢ㄨ繖浜涙鏋讹紵绠€鍗曡涓媠truts2涓暟鎹紶閫掓儏鍐碉紵聽hibernate鐨勪笁绉嶇姸鎬佸拰褰兼鐨勫尯鍒紵浣跨敤hibernate濡備綍鍒嗛〉锛焥pring鐨勪簨鍔¢殧绂荤骇鍒紵ssh濡備綍鏁村悎锛坰pring鏍稿績娴佺▼锛夛紵

(1)spring鐨勫伐浣滃師鐞?

ISpring鍐呴儴鏈€鏍稿績鐨勫氨鏄疘OC浜嗭紝鍔ㄦ€佹敞鍏ワ紝璁╀竴涓璞$殑鍒涘缓涓嶇敤new浜嗭紝鍙互鑷姩鐨勭敓浜э紝杩欏叾瀹炲氨鏄埄鐢╦ava閲岀殑鍙嶅皠锛屽弽灏勫叾瀹炲氨鏄湪杩愯聽鏃跺姩鎬佺殑鍖哄垱寤恒€佽皟鐢ㄥ璞★紝Spring灏辨槸鍦ㄨ繍琛屾椂锛岃窡xmlSpring鐨勯厤缃枃浠舵潵鍔ㄦ€佺殑鍒涘缓瀵硅薄锛屽拰璋冪敤瀵硅薄閲岀殑鏂规硶銆?

II.Spring宸ヤ綔鍘熺悊杩樻湁涓€涓牳蹇冨氨鏄疉op杩欎釜灏辨槸闈㈠悜鍒囬潰鐨勭紪绋嬶紝鍙互涓烘煇涓€绫诲璞¤繘琛岀洃鐫e拰鎺у埗(涔熷氨鏄湪璋冪敤杩欑被瀵硅薄鐨勫叿浣撴柟娉曠殑鍓嶅悗鍘昏皟鐢ㄤ綘鎸囧畾鐨勬ā鍧?浠庤€岃揪鍒板涓€涓ā鍧楁墿鍏呯殑鍔熻兘杩欎簺閮芥槸閫氳繃閰嶇疆绫昏揪鍒扮殑銆?

III.Spring鐩殑锛氬氨鏄瀵硅薄涓庡璞?妯″潡涓庢ā鍧?涔嬮棿鐨勫叧绯绘病鏈夐€氳繃浠g爜鏉ュ叧鑱旓紝閮芥槸閫氳繃閰嶇疆绫昏鏄庣鐞嗙殑(涓昏鏄€氳繃鍙嶅皠鏈哄埗)銆?

(2)hibernate鐨勫伐浣滃師鐞?

I.璇诲彇骞惰В鏋恏ibernate.cfg.xml閰嶇疆鏂囦欢

II.璇诲彇骞惰В鏋愭槧灏勪俊鎭?

III.鍒涘缓SessionFactory

IV.璐熻矗琚寔涔呭寲瀵硅薄CRUD鎿嶄綔,鎵撳紑Sesssion

V.鍒涘缓骞跺惎鍔ㄤ簨鍔ransation

VI.鎿嶄綔鏁版嵁锛屾寔涔呭寲鎿嶄綔

VII.鎻愪氦浜嬪姟,鍏抽棴Session,鍏抽棴SesstionFactory;

(3)struts鐨勫伐浣滃師鐞嗗悓涓?

I.瀹㈡埛绔祻瑙堝櫒鍙戝嚭HTTP璇锋眰銆侷I.鏍规嵁web.xml閰嶇疆锛岃璇锋眰琚獸ilterDispatcher鎺ユ敹銆侷II.鏍规嵁struts.xml閰嶇疆锛屾壘鍒伴渶瑕佽皟鐢ㄧ殑Action绫诲拰鏂规硶锛屄犲苟閫氳繃IoC鏂瑰紡锛屽皢鍊兼敞鍏ョ粰Aciton銆侷V.Action璋冪敤涓氬姟閫昏緫缁勪欢澶勭悊涓氬姟閫昏緫锛岃繖涓€姝ュ寘鍚〃鍗曢獙璇併€俈.Action鎵ц瀹屾瘯锛屾牴鎹畇truts.xml涓殑閰嶇疆鎵惧埌瀵瑰簲鐨勮繑鍥炵粨鏋渞esult锛屽苟璺宠浆鍒扮浉搴旈〉闈€俈I.杩斿洖HTTP鍝嶅簲鍒板鎴风娴忚鍣ㄣ€?

(4)浣跨敤鍘熷洜:

struts鏄紑婧愯蒋浠躲€備娇鐢⊿truts鐨勭洰鐨勬槸涓轰簡甯姪鎴戜滑鍑忓皯鍦ㄨ繍鐢∕VC璁捐妯″瀷鏉ュ紑鍙慦eb搴旂敤鐨勬椂闂淬€傚鏋滄垜浠兂娣峰悎浣跨敤Servlets鍜孞SP鐨勪紭鐐规潵寤虹珛鍙墿灞曠殑搴旂敤锛宻truts鏄竴涓笉閿欑殑閫夋嫨銆?

Hibernate鏄竴涓紑鏀炬簮浠g爜鐨勫璞″叧绯绘槧灏勬鏋讹紝瀹冨JDBC杩涜浜嗛潪甯歌交閲忕骇鐨勫璞″皝瑁咃紝浣垮緱Java绋嬪簭鍛樺彲浠ラ殢蹇冩墍娆茬殑浣跨敤瀵硅薄缂栫▼鎬濈淮鏉ユ搷绾垫暟鎹簱銆偮燞ibernate鍙互搴旂敤鍦ㄤ换浣曚娇鐢↗DBC鐨勫満鍚堬紝鏃㈠彲浠ュ湪Java鐨勫鎴风绋嬪簭浣跨敤锛屼篃鍙互鍦⊿ervlet/JSP鐨刉eb搴旂敤涓娇鐢紝鏈€鍏烽潻鍛芥剰涔夌殑鏄紝Hibernate鍙互鍦ㄥ簲鐢‥JB鐨凧2EE鏋舵瀯涓彇浠MP锛屽畬鎴愭暟鎹寔涔呭寲鐨勯噸浠?

Spring:Spring鏄竴涓紑婧愭鏋?瀹冩槸涓轰簡瑙e喅浼佷笟搴旂敤寮€鍙戠殑澶嶆潅鎬ц€屽垱寤虹殑銆係pring浣跨敤鍩烘湰鐨凧avaBean鏉ュ畬鎴愪互鍓嶅彧鍙兘鐢盓JB瀹屾垚鐨勪簨鎯呫€傜劧鑰岋紝Spring鐨勭敤閫斾笉浠呴檺浜庢湇鍔″櫒绔殑寮€鍙戙€備粠绠€鍗曟€с€佸彲娴嬭瘯鎬у拰鏉捐€﹀悎鐨勮搴﹁€岃█锛屼换浣旿ava搴旂敤閮藉彲浠ヤ粠Spring涓彈鐩?

(5)struts鏁版嵁浼犻€?鍙互鐩存帴鍩轰簬搴旂敤绋嬪簭鍩熷璞¤浆绉伙紝楠岃瘉鏁版嵁锛屾暟鎹粦瀹氾紝鍔ㄤ綔鎶婁粠璇锋眰鎺ユ敹鍒扮殑鎵€鏈夋暟鎹斁鍦ㄧ畝鍗曠殑JavaBean涓娿€傞櫎浜嗗崟鐙帴鍙楁瘡涓暟聽鎹紝struts2鏈€浼橀泤鐨勫湴鏂规椂鍙互鍒涘缓涓€涓璞℃潵鏀剧疆杩欎簺鐞愮鐨勬暟鎹紝鎴戜滑鍙互鎶婂鏉傚璞℃湰韬彁渚涚粰骞冲彴鐨勬暟鎹浆绉绘満鍒躲€傝繖涓嶄絾鑺傜渷鏃堕棿锛岃€屼笖涔熻兘鑺偮犵渷宸ヤ綔閲忋€?

(6)hibernate鐨勪笁绉嶇姸鎬佸拰鍖哄埆:

鐬椂(transient)锛氫篃鍙嚜鐢辩姸鎬?鏁版嵁搴撲腑娌℃湁鏁版嵁涓庝箣瀵瑰簲锛岃秴杩囦綔鐢ㄥ煙浼氳JVM鍨冨溇鍥炴敹鍣ㄥ洖鏀讹紝涓€鑸槸new鍑烘潵涓斾笌session娌℃湁鍏宠仈鐨勫璞°€?

鎸佷箙(persistent)锛氭暟鎹簱涓彲鑳芥湁鏁版嵁涓庝箣瀵瑰簲(save)锛屽綋鍓嶄笌session鏈夊叧鑱旓紝骞朵笖鐩稿叧鑱旂殑session娌℃湁鍏抽棴锛屼簨鍔℃病鏈夋彁浜わ紱鎸佷箙瀵硅薄鐘舵€佸彂鐢熸敼鍙橈紝鍦ㄤ簨鍔℃彁浜ゆ椂浼氬奖鍝嶅埌鏁版嵁搴?hibernate鑳芥娴嬪埌)銆?

鑴辩(detached)锛氫篃鍙父绂荤姸鎬?鏁版嵁搴撲腑鍙兘鏈夋暟鎹笌涔嬪搴旓紝浣嗗綋鍓嶆病鏈塻ession涓庝箣鍏宠仈锛屼絾鏄湁oid锛涙墭绠″璞$姸鎬佸彂鐢熸敼鍙橈紝hibernate涓嶈兘妫€娴嬪埌銆?

鍖哄埆:Transient鐘舵€佺殑瀹炰綋缂轰箯涓庢暟鎹簱琛ㄨ褰曚箣闂寸殑鑱旂郴,鑰孌etached鐘舵€佺殑瀹炰綋鎭版伆鐩稿弽.鍙笉杩囨槸鑴辩浜唖ession杩欎釜鏁版嵁搴撴搷浣滃钩鍙拌€屽凡.

(7)hibernate鍒嗛〉:1.HQL鏌ヨ:Query聽query=session.createQuery(from聽瀹炰綋绫?;2.浠庣鍑犳潯寮€濮?query.setFirstResult(mini);3.姣忔鏈€澶氭彁鍙栧灏戞潯鏁版嵁:query.setMaxResults(max);鎺ユ敹杩斿洖鐨勭粨鏋滈泦:List<瀹炰綋绫?gt;聽HousesList=query.list();

浠g爜濡備笅(Query聽query聽=聽session.createQuery(hql);聽聽

query.setParameter(0,聽userId);聽聽

query.setMaxResults(maxCount);聽聽

query.setFirstResult(firstResult);聽聽

return聽query.list();

)

(8)ssh鏁村悎姝ラ:

1.瀵煎叆struts2鐨刯ar鍖呬互鍙妔truts2-spring-plugin-2.0.11.2.jar;聽

2.鍦╳eb.xml涓垎鍒厤缃畇truts2涓巗pring鐩稿叧淇℃伅;

3.struts涓師鏈夌殑Action闇€瑕佺户鎵緼ctionSupport;

4.鍦⊿pring閰嶇疆Action聽Bean;

5.鍦⊿truts2鐨勯厤缃枃浠朵腑锛岃皟鐢⊿pring涓厤缃殑Bean;

6.Spring涓嶩ibernate鏁村悎锛屽彧闇€瑕佸湪Spring閰嶇疆鏂囦欢閰嶇疆SessionFactory鍗冲彲

(9)Spring鐨勯殧绂荤骇鍒?Default榛樿鐨勪簨鍔¢殧绂荤骇鍒?

READ_UNCOMMITTED璇绘湭鎻愪氦锛屼竴涓簨鍔″彲浠ユ搷浣滃彟澶栦竴涓湭鎻愪氦鐨勪簨鍔★紝涓嶈兘閬垮厤鑴忚锛屼笉鍙噸澶嶈锛屽够璇伙紝闅旂绾у埆鏈€浣庯紝骞跺彂鎬犺兘鏈€楂?

READ_COMMITTED璇诲凡鎻愪氦锛屼竴涓簨鍔′笉鍙互鎿嶄綔鍙﹀涓€涓湭鎻愪氦鐨勪簨鍔★紝聽鑳介槻姝㈣剰璇伙紝涓嶈兘閬垮厤涓嶅彲閲嶅璇伙紝骞昏銆?

repeatable_read鑳藉閬垮厤鑴忚锛屼笉鍙噸澶嶈锛屼笉鑳介伩鍏嶅够璇?

SERIALIZABLE闅旂绾у埆鏈€楂橈紝娑堣€楄祫婧愭渶浣庯紝浠d环鏈€楂橈紝鑳藉闃叉鑴忚锛屄犱笉鍙噸澶嶈锛屽够璇汇€?

6.聽Struts鐨勫伐浣滄祦绋嬶紱

宸ヤ綔娴佺▼:

(1)瀹㈡埛绔彁浜や竴涓狧ttpServletRequest璇锋眰锛坅ction鎴朖SP椤甸潰锛夈€?

聽聽聽(2)璇锋眰琚彁浜ゅ埌涓€绯诲垪Filter杩囨护鍣紝濡侫ctionCleanUp鍜孎ilterDispatcher绛夈€?

聽聽聽(3)FilterDispatcher鏄疭truts2鎺у埗鍣ㄧ殑鏍稿績锛屽畠閫氬父鏄繃婊ゅ櫒閾句腑鐨勬渶鍚庝竴涓繃婊ゅ櫒.

聽聽聽(4)璇锋眰琚彂閫佸埌FilterDispatcher鍚庯紝FilterDispatcher璇㈤棶ActionMapper鏃跺€欓渶瑕佽皟鐢ㄦ煇涓猘ction鏉ュ鐞嗚繖涓猂equest銆?

聽聽聽(5)濡傛灉ActionMapper鍐冲畾闇€瑕佽皟鐢ㄦ煇涓猘ction锛孎ilterDispatcher鍒欐妸璇锋眰浜ょ粰ActionProxy杩涜澶勭悊.

聽聽聽(6)ActionProxy閫氳繃Configuration聽Manager璇㈤棶妗嗘灦鐨勯厤缃枃浠秙truts.xml锛屾壘鍒拌皟鐢ㄧ殑action绫汇€?

聽聽聽(7)ActionProxy鍒涘缓涓€涓狝ctionInvocation瀹炰緥锛岄€氳繃浠g悊妯″紡璋冪敤Action銆?

聽聽聽(8)action鎵ц瀹屾瘯鍚庯紝杩斿洖涓€涓猺esult瀛楃涓诧紝姝ゆ椂鍐嶆寜鐩稿弽鐨勯『搴忛€氳繃Intercepter鎷︽埅鍣ㄣ€?

聽聽聽(9)鏈€鍚嶢ctionInvocation瀹炰緥锛岃礋璐f牴鎹畇truts.xml涓厤缃畆esult鍏冪礌锛屾壘鍒颁笌涔嬬浉瀵瑰簲鐨剅esult锛屽喅瀹氳繘涓€姝ヨ緭鍑恒€?

鍩烘湰绠€瑕佹祦绋?

I.瀹㈡埛绔祻瑙堝櫒鍙戝嚭HTTP璇锋眰銆?

II.鏍规嵁web.xml閰嶇疆锛岃璇锋眰琚獸ilterDispatcher鎺ユ敹銆?

III.鏍规嵁struts.xml閰嶇疆锛屾壘鍒伴渶瑕佽皟鐢ㄧ殑Action绫诲拰鏂规硶锛屄犲苟閫氳繃IoC鏂瑰紡锛屽皢鍊兼敞鍏ョ粰Aciton銆?

IV.Action璋冪敤涓氬姟閫昏緫缁勪欢澶勭悊涓氬姟閫昏緫锛岃繖涓€姝ュ寘鍚〃鍗曢獙璇併€偮犅?

聽聽聽聽VI.Action鎵ц瀹屾瘯锛屾牴鎹畇truts.xml涓殑閰嶇疆鎵惧埌瀵瑰簲鐨勮繑鍥炵粨鏋渞esult锛屽苟璺宠浆鍒扮浉搴旈〉闈€俈I.杩斿洖HTTP鍝嶅簲鍒板鎴风娴忚鍣ㄣ€偮?

7.聽绠€杩癝SH宸ヤ綔娴佺▼锛?

(1)JSP椤甸潰鍙戝嚭璇锋眰锛孲truts鎺ユ敹椤甸潰璇锋眰锛孲truts鐨刟ction璋冪敤涓氬姟閫昏緫锛屼笟鍔¢€昏緫璋冪敤涓氬姟缁勪欢锛堝叾涓娇鐢ㄥ埌Spring鐨勪緷璧栨敞鍏ヂ營OC锛屾垨鑰匒OP绛夛級锛涗笟鍔$粍浠舵牴鎹瓾ibernate鐨勫璞?鍏崇郴鏁版嵁搴撶殑鏄犲皠鍏崇郴鏌ヨ鏁版嵁搴撱€係truts鏍规嵁缁撴灉杩斿洖椤甸潰銆?

8.聽璋堣皥Spring鍜孲pring聽MVC鐨勬祦绋嬪拰浜嬪姟锛泂pring閰嶇疆鏂囦欢閮藉啓浠€涔堬紵

(1)spring鎻愪緵涓ょ绠$悊浜嬪姟鐨勬柟寮?涓€绉嶆槸澹版槑寮忎簨鍔★紝涓€绉嶆槸缂栫▼寮忎簨鍔°€?

Spring鐨勫0鏄庡紡浜嬪姟绠$悊锛屽熀浜嶴pring鐨凙OP锛屽熀浜嶴pring聽AOP瀹炵幇锛屽嚑涔庡氨鏄痻ml鏂囦欢鐨勯厤缃?涓嶅啀闇€瑕佷笉鍋滃湴鍐檆ommit锛宺ollback锛岋紙浣哠pring浠嶇劧娌℃湁鏀惧純缂栫▼寮忕殑浜嬪姟绠$悊绛栫暐锛夈€?

Spring鐨勭紪绋嬪紡浜嬪姟绠$悊锛岀粺涓€鐨勪簨鍔$紪鐮侀鏍硷紝鍑犱箮鏄竴涓ā鏉垮寲鐨勩€?

涓烘垜浠彁渚涗簡涓€涓猅ransactionTemplate锛屼娇鐢ㄥ洖璋冩満鍒讹紝灏嗗簲鐢ㄤ唬鐮佷粠鏍锋澘寮忕殑璧勬簮鑾峰彇鍜岄噴鏀句唬鐮佷腑瑙f斁鍑烘潵锛屼笉鍐嶆湁澶ч噺鐨則ry/catch/finally/try/catch浠g爜鍧椼€?

(2)springMVC鐨勬祦绋嬪拰浜嬪姟:鍔ㄦ€佹敞鍏ワ紝璁╀竴涓璞$殑鍒涘缓涓嶇敤new浜嗭紝鍙互鑷姩鐨勭敓浜э紝杩欏叾瀹炲氨鏄埄鐢╦ava閲岀殑鍙嶅皠聽,鍙嶅皠鍏跺疄灏辨槸鍦ㄨ繍琛屾椂鍔ㄦ€佺殑鍘诲垱寤恒€佽皟鐢ㄥ璞★紝Spring灏辨槸鍦ㄨ繍琛屾椂锛岃窡xml聽Spring鐨勯厤缃? 鏂囦欢鏉ュ姩鎬佺殑鍒涘缓瀵硅薄锛屽拰璋冪敤瀵硅薄閲岀殑鏂规硶鐨劼犮€?

Spring杩樻湁涓€涓牳蹇冨氨鏄疉OP杩欎釜灏辨槸闈㈠悜鍒囬潰缂栫▼锛屽彲浠ヤ负鏌愪竴绫诲璞÷犺繘琛岀洃鐫e拰鎺у埗锛堜篃灏辨槸鍦ㄨ皟鐢ㄨ繖绫诲璞$殑鍏蜂綋鏂规硶鐨勫墠鍚庡幓璋冪敤浣犳寚瀹氱殑聽妯″潡锛変粠鑰岃揪鍒板涓€涓ā鍧楁墿鍏呯殑鍔熻兘銆傝繖浜涢兘鏄€氳繃聽閰嶇疆绫昏揪鍒扮殑銆係pring鐩殑锛氬氨鏄瀵硅薄涓庡璞★紙妯″潡涓庢ā鍧楋級涔嬮棿鐨勫叧绯绘病鏈夐€氳繃浠g爜鏉ュ叧鑱旓紝閮芥槸閫氳繃閰嶇疆绫昏鏄庣鐞嗙殑锛圫pring鏍规嵁杩欎簺閰嶇疆聽鍐呴儴閫氳繃鍙嶅皠鍘诲姩鎬佺殑缁勮瀵硅薄锛壜? 瑕佽浣忥細Spring鏄竴涓鍣紝鍑℃槸鍦ㄥ鍣ㄩ噷鐨勫璞℃墠浼氭湁Spring鎵€鎻愪緵鐨勮繖浜涙湇鍔″拰鍔熻兘銆?

(3)spring鐨勯厤缃枃浠?涓€銆佸紩鐢ㄥ閮ㄥ睘鎬ф枃浠?浜屻€佸父鐢ㄦ暟鎹簮鐨勯厤缃?涓夈€侀厤缃簨鍔$鐞嗗櫒;鍥涖€乧ontext:component-scan<!--聽瀵瑰寘涓殑鎵€鏈夌被杩涜鎵弿锛屼互瀹屾垚Bean鍒涘缓鍜岃嚜鍔ㄤ緷璧栨敞鍏ョ殑鍔熻兘聽-->;浜斻€乤op娉ㄨВ鏀寔;鍏€佺紦瀛橀厤缃?涓冦€?lt;!--聽Spring銆丮yBatis鐨勬暣鍚堬紝闇€瑕佸湪聽Spring聽搴旂敤涓婁笅鏂囦腑瀹氫箟鑷冲皯涓ゆ牱涓滆タ锛氫竴涓猄qlSessionFactory鍜岃嚦灏戜竴涓暟鎹槧灏勫櫒绫伙紙UserMapper->iocContext.xml锛夈€偮?->;

9.聽ssm鍜宻sh鐨勫尯鍒紵

(1)鍩轰簬MVC涓夊眰鏋舵瀯锛屼娇鐢╯sh妗嗘灦聽or聽ssm妗嗘灦聽or聽ssi妗嗘灦锛岄噰鐢ㄩ潰鍚戞帴鍙g殑鏂瑰紡缂栫▼銆? 鍏卞悓鐐规槸struts銆乻pring锛屼笉鍚岀偣鏄痭ibernate鍜宮ybatis銆乮batis銆?

(2)鐩稿Hibernate鈥淥/R鈥濊€岃█锛宨BATIS聽鏄竴绉嶁€淪ql聽Mapping鈥濈殑ORM瀹炵幇銆?

(3)鐢变簬hibernate鏄畬鍏ㄩ潰鍚戝璞$殑缂栫▼锛屽湪瀹炵幇dao涓氨闈炲父鐨勬柟渚匡紝鑰屼笖涓嶉噸澶嶏紱褰搈ybatis鍦?java浠g爜涓篃鏄彲浠ュ仛鍒颁笉閲嶅锛岄夯鐑︿竴鐐圭殑鏄紝姣忎釜鏄犲皠鏂囦欢閮藉繀椤荤紪鍐欏嚑涔庣浉鍚岀殑閰嶇疆锛岄櫎浜唕esultType涓嶄竴鏍枫€?

(4)hibernate鍦ㄥ疄闄呯紪绋嬩腑鍙互鎶婂熀纭€鐨凜RUD灏佽锛屾瘮濡侭aseDao绫汇€傚叾瀹冪被鍙鍘荤户鎵緽aseDao灏辫兘鎵ц鎵€鏈夌殑鍩虹鐨凜RUD銆傝繖鏍峰氨闈炲父鏂逛究銆傝繖涓甫鏉ョ殑濂藉杩樻湁锛屽彲浠ュ缓绔婤aseService鍜孊aseAction銆偮?

鐢变簬mybatis鐨勬槧灏勬枃浠朵腑锛岃櫧鐒禨QL璇彞涓殑琛ㄥ悕鍙互閫氳繃parameterType鎸囧畾锛屼絾鏄痳esultType蹇呴』瀹氭锛屼笉鑳戒互鍙傛暟聽鐨勫舰寮忕粰浜堟寚瀹氥€傚鑷寸殑缁撴灉灏辨槸鎵€鏈夌殑DAO绫荤殑姣忎釜CRUD閮藉繀椤诲拰鎸囧畾鐨勬槧灏勬枃浠剁粦瀹氬湪涓€璧凤紝浠ヨ嚦浜庝笉鍙兘瀛樺湪BaseDao绫汇€傚綋鐒朵篃灏变笉鑳藉缓绔嬄燘aseService鍜孊aseAction銆?

10.聽spring鏍稿績锛歛op鍜宨oc鐨勮В閲婏紵闅旂鑼冨洿锛熉?绉嶆敞鍏ユ柟娉曪紵

(1)aop:Spring鎻愪緵浜嗗AOP鎶€鏈殑鑹ソ灏佽锛屄燗OP绉颁负闈㈠悜鍒囬潰缂栫▼锛屽氨鏄郴缁熶腑鏈夊緢澶氬悇涓嶇浉骞茬殑绫荤殑鏂规硶锛屽湪杩欎簺浼楀鏂规硶涓鍔犲叆鏌愮绯荤粺鍔熻兘鐨勪唬鐮?渚嬪锛屽姞鍏ユ棩蹇楋紝鍔犲叆鏉冮檺鍒ゆ柇锛屽姞鍏ュ紓甯稿鐞嗭紝杩欑搴旂敤绉颁负AOP銆傚疄鐜癆OP鍔熻兘閲囩敤鐨勬槸浠g悊鎶€鏈紝瀹㈡埛绔▼搴忎笉鍐嶈皟鐢ㄧ洰鏍囷紝鑰岃皟鐢ㄤ唬鐞嗙被锛屼唬鐞嗙被涓庣洰鏍囩被瀵瑰鍏锋湁鐩稿悓鐨勬柟娉曞0鏄庯紝鏈変袱绉嶆柟寮忓彲浠ュ疄鐜扮浉鍚岀殑鏂规硶澹版槑锛屼竴鏄疄鐜扮浉鍚岀殑鎺ュ彛锛屼簩鏄綔涓虹洰鏍囩殑瀛愮被鍦紝JDK涓噰鐢≒roxy绫讳骇鐢熷姩鎬佷唬鐞嗙殑鏂瑰紡涓烘煇涓帴鍙g敓鎴愬疄鐜扮被锛宻pring鎻愪緵浜嗚繖绉嶆敮鎸侊紝鍙渶瑕佸湪spring閰嶇疆鏂囦欢涓厤缃繖涓や釜鍏冪礌鍗冲彲瀹炵幇浠g悊鍜宎op鍔熻兘;

(2)Ioc:Spring鎻愪緵浜嗗IOC鑹ソ鏀寔锛孖OC鏄竴绉嶇紪绋嬫€濇兂锛屾槸涓€绉嶆灦鏋勮壓鏈紝鍒╃敤杩欑鎬濇兂鍙互寰堝ソ鍦板疄鐜版ā鍧椾箣闂寸殑瑙h€︺€侷OC涔熺О涓篋I锛圖epency聽Injection锛?IOC鍙互鐞嗚В涓衡€橀潰鍚戞帴鍙g紪绋嬫€濇兂鈥欑殑涓€绉嶅疄鐜版柟娉曪紝閫氳繃IOC瀹炵幇浜嗗己鍒剁殑鈥橀潰鍚戞帴鍙g紪绋嬧€欍€?

(3)闅旂鑼冨洿:聽Spring鏀寔JDBC瑙勮寖瀹氫箟鐨勫洓绉嶉殧绂荤骇鍒?

Default榛樿鐨勪簨鍔¢殧绂荤骇鍒?

READ_UNCOMMITTED璇绘湭鎻愪氦锛屼竴涓簨鍔″彲浠ユ搷浣滃彟澶栦竴涓湭鎻愪氦鐨勪簨鍔★紝涓嶈兘閬垮厤鑴忚锛屼笉鍙噸澶嶈锛屽够璇伙紝闅旂绾у埆鏈€浣庯紝骞跺彂鎬犺兘鏈€楂?

READ_COMMITTED璇诲凡鎻愪氦锛屼竴涓簨鍔′笉鍙互鎿嶄綔鍙﹀涓€涓湭鎻愪氦鐨勪簨鍔★紝聽鑳介槻姝㈣剰璇伙紝涓嶈兘閬垮厤涓嶅彲閲嶅璇伙紝骞昏銆?

repeatable_read鑳藉閬垮厤鑴忚锛屼笉鍙噸澶嶈锛屼笉鑳介伩鍏嶅够璇?

SERIALIZABLE闅旂绾у埆鏈€楂橈紝娑堣€楄祫婧愭渶浣庯紝浠d环鏈€楂橈紝鑳藉闃叉鑴忚锛屄犱笉鍙噸澶嶈锛屽够璇汇€?

(4)Spring鐨勬敞鍏ュ拰IoC鍙嶈浆鎺у埗鏄竴鍥炰簨;鍏充簬getter鍜宻etter鏂瑰紡鐨勬敞鍏?

Autowire=鈥漝efualt鈥?autowire=鈥漛yName鈥?autowire=鈥漛yType鈥?

11.聽涓や嚎鏉℃暟鎹浣曞悓鏃跺垹闄?

(1)路聽聽public聽boolean聽delUsers(String[]聽userIds){聽聽

路聽聽聽聽聽聽聽聽聽聽boolean聽flag聽=聽false;聽聽

路聽聽聽聽聽聽聽聽聽聽Connection聽conn聽=聽null;聽聽

路聽聽聽聽聽聽聽聽聽聽PreparedStatement聽pstmt聽=聽null;聽聽聽聽

路聽聽聽聽聽聽聽聽聽聽String聽sql聽=聽"delete聽from聽t_user聽where聽user_id=?";聽聽

路聽聽聽聽聽聽聽聽聽聽try聽{聽聽

路聽聽聽聽聽聽聽聽聽聽聽聽聽聽conn聽=聽DbUtil.getConnection();聽聽

路聽聽聽聽聽聽聽聽聽聽聽聽聽聽conn.setAutoCommit(false);聽聽

路聽聽聽聽聽聽聽聽聽聽聽聽聽聽pstmt聽=聽conn.prepareStatement(sql);聽聽

路聽聽聽聽聽聽聽聽聽聽聽聽聽聽for(int聽i聽=0聽;i<userIds.length;i++){聽聽聽

路聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽pstmt.setString(1,userIds[i].trim());聽聽

路聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽pstmt.addBatch();聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽

路聽聽聽聽聽聽聽聽聽聽聽聽聽聽}聽聽聽

路聽聽聽聽聽聽聽聽聽聽聽聽聽聽pstmt.executeBatch();聽//鎵归噺鎵ц聽聽聽

路聽聽聽聽聽聽聽聽聽聽聽聽聽聽conn.commit();//鎻愪氦浜嬪姟聽聽

路聽聽聽聽聽聽聽聽聽聽聽聽聽聽flag聽=聽true;聽聽

路聽聽聽聽聽聽聽聽聽聽}聽catch聽(SQLException聽e)聽{聽聽

路聽聽聽聽聽聽聽聽聽聽聽聽聽聽try聽{聽聽

路聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽conn.rollback();聽//杩涜浜嬪姟鍥炴粴聽聽

路聽聽聽聽聽聽聽聽聽聽聽聽聽聽}聽catch聽(SQLException聽ex)聽{聽聽聽

路聽聽聽聽聽聽聽聽聽聽聽聽聽聽}聽聽聽

路聽聽聽聽聽聽聽聽聽聽}finally聽{聽聽

路聽聽聽聽聽聽聽聽聽聽聽聽聽聽DbUtil.close(pstmt);聽聽

路聽聽聽聽聽聽聽聽聽聽聽聽聽聽DbUtil.close(conn);聽聽

路聽聽聽聽聽聽聽聽聽聽}聽聽聽

路聽聽聽聽聽聽聽聽聽聽return聽flag;聽聽

路聽聽聽聽聽聽}聽聽

12.聽濡備綍灏?涓猤鐨勬暟鎹渶蹇€熷害鏀捐繘C鐩樹腑?

(1)public聽class聽Test01聽{

聽聽聽聽聽

聽聽聽聽public聽static聽void聽main(String[]聽args)聽throws聽Exception{

聽聽聽聽聽聽聽聽getInputStream("C:\\setup.log","D:\\a.txt");

聽聽聽聽}

聽聽聽聽private聽static聽void聽getInputStream(String聽pathName,String聽copyName)throws聽Exception{

聽聽聽聽聽聽聽聽File聽file聽=聽new聽File(pathName);

聽聽聽聽聽聽聽聽if(!file.exists())

聽聽聽聽聽聽聽聽聽聽聽聽throw聽new聽RuntimeException("鏂囦欢涓嶅瓨鍦ㄥ憖,浣燙opy涓眮锛?);

聽聽聽聽聽聽聽聽else{

聽聽聽聽聽聽聽聽聽聽聽聽getCopy(copyName,new聽BufferedInputStream(new聽FileInputStream(file)));

聽聽聽聽聽聽聽聽}

聽聽聽聽}

聽聽聽聽private聽static聽void聽getCopy(String聽copyName,BufferedInputStream聽bis)throws聽Exception{

聽聽聽聽聽聽聽聽BufferedOutputStream聽bos聽=聽new聽BufferedOutputStream(new聽FileOutputStream(copyName));

聽聽聽聽聽聽聽聽BufferedInputStream聽biss聽=聽bis;

聽聽聽聽聽聽聽聽byte[]聽b聽=聽new聽byte[biss.available()];

聽聽聽聽聽聽聽聽int聽len聽=聽0;

聽聽聽聽聽聽聽聽while((len聽=聽biss.read(b))!=-1){

聽聽聽聽聽聽聽聽聽聽聽聽bos.write(b,聽0,聽len);

聽聽聽聽聽聽聽聽}

聽聽聽聽聽聽聽聽bos.close();

聽聽聽聽聽聽聽聽biss.close();

聽聽聽聽聽聽聽聽System.out.println(copyName+"澶嶅埗鎴愬姛锛?);

聽聽聽聽}

鍐掓场鎺掑簭:

public聽static聽void聽bubbleSort(int[]聽numbers)聽{聽聽聽

聽聽聽聽int聽temp;聽//聽璁板綍涓存椂涓棿鍊悸犅犅? 聽聽聽聽int聽size聽=聽numbers.length;聽//聽鏁扮粍澶у皬聽聽聽

聽聽聽聽for聽(int聽i聽=聽0;聽i聽<聽size聽-聽1;聽i++)聽{聽聽聽

聽聽聽聽聽聽聽聽for聽(int聽j聽=聽i聽+聽1;聽j聽<聽size;聽j++)聽{聽聽聽

聽聽聽聽聽聽聽聽聽聽聽聽if聽(numbers[i]聽<聽numbers[j])聽{聽//聽浜ゆ崲涓ゆ暟鐨勪綅缃犅犅? 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽temp聽=聽numbers[i];聽聽聽

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽numbers[i]聽=聽numbers[j];聽聽聽

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽numbers[j]聽=聽temp;聽聽聽

聽聽聽聽聽聽聽聽聽聽聽聽}聽聽聽

聽聽聽聽聽聽聽聽}聽聽聽

聽聽聽聽}聽聽聽

}聽聽

閫夋嫨鎺掑簭:

public聽static聽void聽selectSort(int[]聽numbers)聽{聽聽聽

聽聽聽聽int聽size聽=聽numbers.length,聽temp;聽聽聽

聽聽聽聽for聽(int聽i聽=聽0;聽i聽<聽size;聽i++)聽{聽聽聽

聽聽聽聽聽聽聽聽int聽k聽=聽i;聽聽聽

聽聽聽聽聽聽聽聽for聽(int聽j聽=聽size聽-聽1;聽j聽>i;聽j--)聽聽{聽聽聽

聽聽聽聽聽聽聽聽聽聽聽聽if聽(numbers[j]聽<聽numbers[k])聽聽k聽=聽j;聽聽聽

聽聽聽聽聽聽聽聽}聽聽聽

聽聽聽聽聽聽聽聽temp聽=聽numbers[i];聽聽聽

聽聽聽聽聽聽聽聽numbers[i]聽=聽numbers[k];聽聽聽

聽聽聽聽聽聽聽聽numbers[k]聽=聽temp;聽聽聽

聽聽聽聽}聽聽聽

}聽聽

椤圭洰闈㈣瘯閫氬叧蹇呮噦

椤圭洰閫氱敤闂锛?

1锛庝粙缁嶄笅鏁翠釜椤圭洰娴佺▼锛岃皥璋堜綘鑷繁璐熻矗鐨勬ā鍧楋紵鍒汉鐨勬ā鍧楁槸鍚︿簡瑙o紵

2锛庤瑙d笅鑷繁璐熻矗鐨勬ā鍧楋紝杩欎釜妯″潡濡備綍瀹炵幇鐨勶紵鍋氳繖涓」鐩椂鍊欓亣鍒版€庢牱鐨勯棶棰橈紵

3锛庝綘鍦ㄩ」鐩粍涓殑瑙掕壊鍜屼紭鍔匡紵

4锛庡仛椤圭洰鐨勬椂闂达紝椤圭洰缁勫嚑涓汉锛屽闀挎椂闂村畬鎴愶紵

5.聽浠嬬粛涓嬬畻娉曞拰椤圭洰鐨勬€濊矾锛?

6.聽闂畇ession鍜宑ooie鐨勫尯鍒紵

聽聽聽聽(1)鍏蜂綋鏉ヨcookie鏈哄埗閲囩敤鐨勬槸鍦ㄥ鎴风淇濇寔鐘舵€佺殑鏂规锛岃€宻ession聽鏈哄埗閲囩敤鐨勬槸鍦ㄦ湇鍔″櫒绔繚鎸佺姸鎬佺殑鏂规銆傜敱浜庢墠鏈嶅姟鍣ㄧ淇濇寔鐘舵€佺殑鏂规鍦ㄥ鎴风涔熼渶瑕佷繚瀛樹竴涓爣璇嗭紝鎵€浠ession鏈哄埗鍙兘闇€瑕佸€熷姪浜巆ookie鏈哄埗鏉ヨ揪鍒颁繚瀛樻爣璇嗙殑鐩殑锛屼絾瀹為檯涓婅繕鏈夊叾浠栭€夋嫨銆?

7.聽闂櫥闄嗛〉锛?

8.聽Spring浜嬪姟锛?

9.聽鍚屾閿侊紱

10.寰€鍏宠仈涓や釜琛ㄤ腑娣诲姞鏁版嵁锛屽鏋滄病鏈夋坊鍔犳垚鍔燂紝浼氭€庢牱锛熷浣曞鐞嗭紵

11.璇翠笅浣跨敤鐨勯」鐩畇sm妗嗘灦鍜屼娇鐢ㄧ殑鎶€鏈疛son鍜宎jax銆?

12.澶ф暟鎹浣曞鐞嗭紵鏁版嵁搴撳浣曟壒閲忓垹闄ゅ拰鎵归噺鎻掑叆锛?

鍏蜂綋椤圭洰杩樿娓呮

涓€锛氬ソ涔扮綉鍟嗗煄椤圭洰

1锛氬晢鍩庨」鐩殑闇€姹傦紝浠嬬粛鏁翠釜椤圭洰娴佺▼锛?

浜岋細浣犳垜璐烽噾铻峆2P椤圭洰

1锛庨」鐩埄鎭棶棰橈紱

2锛庤韩浠藉浣曢獙璇佺殑闂锛?

3锛庨」鐩殑閫昏緫鍏崇郴锛?

4锛庣涓夋柟鎺ュ彛鎬庝箞鍐欙紵

5锛庤繚绾﹀浣曟彁閱掔殑闂锛?

6锛庨噾棰濋櫎涓嶅敖鐨勯棶棰橈紵

涓壜犺繘閿€瀛橀」鐩細

1锛庝粙缁嶄笅杩涢攢瀛橀」鐩紵

浠嬬粛椤圭洰鏃跺厛璇撮」鐩渶姹傦紝鐒跺悗浠庡紑濮嬬殑杩涢攢瀛樿繘璐ц鍒版渶鍚庯紝杩涢攢瀛樼殑妯″潡锛氳繘璐с€侀攢鍞€佸簱瀛樸€佽储鍔℃姤琛ㄣ€佺敤鎴风鐞嗐€佷俊鐢ㄥ喕缁撱€佸叏灞€璧勬簮锛岀劧鍚庢寜鐓ч攢鍞祦绋嬫妸椤圭洰璐┛涓€涓嬨€?

2锛庤繘閿€瀛橀」鐩礋璐g殑妯″潡鏄粈涔堬紵

3锛庢潈闄愶細鏉冮檺鍒嗛厤锛涘仛鏉冮檺鎺у埗锛屾暟鎹簱鍏崇郴鏄犲皠浠嬬粛涓嬶紵

4锛庢暟鎹簱璧勯噾绫诲瀷璁剧疆鎴恇igdecimal杩樻槸double锛?

5锛庢姤琛ㄧ敤鐨勬槸浠€涔堬紵

6锛庝竴涓」鐩暟鎹簱鐗垫壇鍑犱釜琛紵

7锛庤繘閿€瀛樺灏戜釜琛紵鐢ㄦ埛绠$悊鏂归潰澶氬皯涓ā鍧楋紵鐢ㄦ埛绠$悊妯″潡澶氬皯涓〃锛?

9.聽濡備綍鍒ゆ柇鏄嚜宸辩殑閲囪喘銆佺粰鍝鍏徃鍋氱殑銆佸ソ澶氫汉涔颁笢瑗垮彂鐢熶簡閿欒濡備綍瑙e喅锛堜簨鐗?amp;澶氱嚎绋嬶級

聽銆愬叧浜庢垜浠€?

鎵嶆穱锛堝井淇″叕浼楀彿锛歝aiqicehua锛夛紝涓撴敞浜庡浗鍐呭悇澶т簰鑱旂綉鍏徃绀句細鎷涜仒鍐呮帹銆傛瘡澶╂洿鏂版渶鏂颁簰鑱旂綉鍚嶄紒锛堝寘鎷絾涓嶉檺浜庝粖鏃ュご鏉°€佺綉鏄撴父鎴忋€丅AT銆佺綉鏄撲簰鑱旂綉銆佸皬绫炽€佷含涓溿€佷箰瑙嗐€佹惡绋嬬瓑鍚嶄紒锛夊唴鎺ㄤ俊鎭紝鏈夋妧鏈矖銆佹湁浜у搧宀椼€佹湁杩愯惀宀椼€佹湁璁捐宀椼€佹湁浜や簰宀椼€佹湁閿€鍞矖锛屾洿鏈夊叾浠朜澶氱浉鍏冲矖浣嶏紒鏇村鍐呮帹淇℃伅璇锋壂鎻忎互涓嬩簩缁寸爜鍏虫敞鏌ラ槄銆?

JAVA面试题和项目面试核心要点精华总结(想进大公司必看)