2.Treemap和Hashmap区别是什么?
TreeMap对Key˜q›è¡ŒæŽ’åºåQŒè€ŒHashMap䏿ޒåºã€‚HashMap通过hashcode对其内容˜q›è¡Œå¿«é€ŸæŸ¥æ‰¾ï¼Œ 而TreeMap䏿‰€æœ‰çš„å…ƒç´ éƒ½ä¿æŒç€æŸç§å›ºå®šçš„顺åºï¼Œå¦‚æžœä½ éœ€è¦å¾—åˆîC¸€ä¸ªæœ‰åºçš„¾l“æžœä½ å°±åº”è¯¥ 使用TreeMapåQˆHashMapä¸å…ƒç´ 的排列™åºåºæ˜¯ä¸å›ºå®šçš„)ã€?/p>
3.ä¸ÞZ½•åŠ å…¥åQšprivate static final long serialVersionUID?
å¯ä»¥åˆ©ç”¨JDKçš„bin目录下的serialver.exe工具产生ã€?br />åºåˆ—化时ä¸ÞZº†ä¿æŒç‰ˆæœ¬çš„å…¼å®ÒŽ€§ï¼Œå›_œ¨ç‰ˆæœ¬å‡çñ”æ—¶ååºåˆ—化ä»ä¿æŒ 对象的唯一性。在javaä¸serialVersionUID是唯一控制ç€èƒ½å¦ååºåˆ—化æˆåŠŸçš„æ ‡å¿—ï¼Œ åªè¦˜q™ä¸ªå€ég¸ä¸€æ øP¼Œž®±æ— 法ååºåˆ—化æˆåŠŸã€?/p>
4.JSP¾~–译和执行原ç?
JSPæ–‡äšgçš„Scriptlets在编译厞®†è¢«åŒ…å«äºŽè¯¥JSP servletçš„service()æ–ÒŽ³•。当JSP引擎处ç†å®¢æˆ·ç«¯è¯·æ±‚æ—¶åQŒJSP Scriptlets在被è¯äh±‚的时候被执行。如果scriptlet产生输出åQŒè¾“出将在out (JSPWriter)对象ä¸è¿›è¡Œç¼“å˜ç„¶åŽæœ€¾lˆå‘é€åˆ°å®¢æˆ·ç«¯ã€?/p>
5.怎么解决JSP/Servlet webä¸ä¸æ–‡äØ•ç 的问题
6.JDBCä¸ï¼Œstatement,prepared statement ,Callable statement的区别是什ä¹?
Statement æŽ¥å£æä¾›äº†æ‰§è¡Œè¯å¥å’ŒèŽ·å–¾l“果的基本方法。PreparedStatement æŽ¥å£æ·ÕdŠ äº†å¤„ç?IN 傿•°çš„æ–¹æ³•ï¼›è€?CallableStatement æ·ÕdŠ äº†å¤„ç?OUT 傿•°çš„æ–¹æ³•ã€?br />PreparedStatement:对于åŒä¸€æ¡è¯å¥çš„多次执行,Statementæ¯æ¬¡éƒ½è¦æŠŠSQLè¯å¥å‘é€ç»™æ•°æ®
åº?˜q™æ ·åšæ•ˆçŽ‡æ˜Žæ˜¾ä¸é«?而如果数æ®åº“支æŒé¢„ç¼–è¯?PreparedStatementå¯ä»¥å…ˆæŠŠè¦æ‰§è¡Œçš„è¯å¥ä¸€‹Æ¡å‘¾l™å®ƒ,ç„¶åŽæ¯æ¬¡æ‰§è¡Œè€Œä¸å¿…å‘é€ç›¸åŒçš„è¯å¥,效率当然æé«˜,当然如果数æ®åº“䏿”¯æŒé¢„ç¼–è¯?
PreparedStatement会象Statementä¸€æ ·å·¥ä½?åªæ˜¯æ•ˆçއä¸é«˜è€Œä¸éœ€è¦ç”¨æˆ·å·¥æ‰‹å¹²é¢?
   å¦å¤–PreparedStatement˜q˜æ”¯æŒæŽ¥æ”¶å‚æ•?在预¾~–译åŽåªè¦ä¼ 输ä¸åŒçš„傿•°ž®±å¯ä»¥æ‰§è¡?大大
æé«˜äº†æ€§èƒ½.
CallableStatement:是PreparedStatementçš„å¾c?å®ƒåªæ˜¯ç”¨æ¥æ‰§è¡Œå˜å‚¨è¿‡½E‹çš„.
7.ä»€ä¹ˆæƒ…å†µä¸‹ä¼šæŠ›å‡ºâ€œæ‰“å¼€æ¸¸æ ‡‘…过最大数â€çš„异常åQ?/p>
8.XMLè§£æžä¸ï¼šSAXå’ŒDOMçš„ä¸åŒç‚¹æœ‰å“ªäº›ï¼Ÿ
9.抽象¾cÕd’ŒæŽ¥å£çš„区别?
10.什么是ä¸é—´ä»?/p>
11.JSP的内¾|®å¯¹è±¡æœ‰é‚£äº›?
Out, request, response, application, session, exception, config, page, pageContext.
12.有那些方法能防æ¢ã€åŒ–解对web¾|‘站的攻击?
13.如何æé«˜è®‰K—®web¾|‘站的速度åQ?br />14.Javaå¯é‡‡ç”¨çš„MVC框架技术有哪些åQŸä»–们的特å¾å’Œé€‚用环境如何åQ?br />Struts, WebWork, Spring, JSFâ€?/p>
15.MVC的优¾~ºç‚¹æ˜¯ä»€ä¹ˆï¼Œé€‚用范围如何åQ?br />MVC开呿¨¡å¼åˆ†¼›ÀL•°æ®è®¿é—®å±‚和数æ®è¡¨çް层åQŒåƈ使开å‘äh员开å‘一个å¯ä¼¸ç¾ƒæ€§çš„强ã€ä¾¿äºŽæ‰©å±•的控制器,æ¥ç»´æŠ¤æ•´ä¸ªæµ½E‹ã€?br />16.TOMCATé…ç½®ä¸ï¼Œæœ‰å…³å®‰å…¨çš„设¾|®é€‰é¡¹æœ‰å“ªäº›ï¼Ÿ
17.Apach与Tomcaté…åˆä½¿ç”¨åQŒæ˜¯ä¸ø™§£å†³ä»€ä¹ˆé—®é¢˜ï¼Ÿæ€Žä¹ˆå®žçްåQŸè¿è¡Œè¿‡½E‹å¦‚何?
18.Collection的四个接å?br />add();
addAllåQˆï¼‰åQ?br />isEmpty();
iterator();
contains();
19.Cookie
20.多æ€?br />21.Webä¸Šå‚æ•°çš„ä¼ è¾“æ–¹å¼
22.HashTableå’ŒHashMap的区åˆ?br />Hashtableå’ŒHashMap¾cÀLœ‰ä¸‰ä¸ªé‡è¦çš„ä¸åŒä¹‹å¤„。第一个ä¸åŒä¸»è¦æ˜¯åކå²åŽŸå› ã€‚Hashtable是基于陈旧的Dictionary¾cÈš„åQŒHashMap是Java 1.2引进的Map接å£çš„一个实现ã€?
也许最é‡è¦çš„ä¸åŒæ˜¯Hashtableçš„æ–¹æ³•æ˜¯åŒæ¥çš„,而HashMapçš„æ–¹æ³•ä¸æ˜¯ã€‚è¿™ž®±æ„味ç€åQŒè™½ç„¶ä½ å¯ä»¥ä¸ç”¨é‡‡å–ä»ÖM½•ç‰ÒŽ®Šçš„行为就å¯ä»¥åœ¨ä¸€ä¸ªå¤š¾U¿ç¨‹çš„应用程åºä¸ç”¨ä¸€ä¸ªHashtableåQŒä½†ä½ å¿…™åÕdŒæ ·åœ°ä¸ÞZ¸€ä¸ªHashMapæä¾›å¤–åŒæ¥ã€‚一个方便的æ–ÒŽ³•ž®±æ˜¯åˆ©ç”¨Collections¾cÈš„陿€çš„synchronizedMap()æ–ÒŽ³•åQŒå®ƒåˆ›å¾ä¸€ä¸ªçº¿½E‹å®‰å…¨çš„Map对象åQŒåÆˆæŠŠå®ƒä½œäØ“ä¸€ä¸ªå°è£…的对象æ¥è¿”回。这个对象的æ–ÒŽ³•å¯ä»¥è®©ä½ åŒæ¥è®‰K—®æ½œåœ¨çš„HashMap。这么åšçš„ç»“æžœå°±æ˜¯å½“ä½ ä¸éœ€è¦åŒæ¥æ—¶åQŒä½ ä¸èƒ½åˆ‡æ–Hashtableä¸çš„åŒæ¥åQˆæ¯”如在一个啾U¿ç¨‹çš„应用程åºä¸åQ‰ï¼Œè€Œä¸”åŒæ¥å¢žåŠ äº†å¾ˆå¤šå¤„ç†è´¹ç”¨ã€?
½W¬ä¸‰ç‚¹ä¸åŒæ˜¯åQŒåªæœ‰HashMapå¯ä»¥è®©ä½ ž®†ç©ºå€ég½œä¸ÞZ¸€ä¸ªè¡¨çš„æ¡ç›®çš„key或value。HashMapä¸åªæœ‰ä¸€æ¡è®°å½•å¯ä»¥æ˜¯ä¸€ä¸ªç©ºçš„keyåQŒä½†ä»ÀL„æ•°é‡çš„æ¡ç›®å¯ä»¥æ˜¯½Iºçš„value。这ž®±æ˜¯è¯ß_¼Œå¦‚æžœåœ¨è¡¨ä¸æ²¡æœ‰å‘现æœç´¢é”®åQŒæˆ–者如果å‘çŽîCº†æœçƒ¦é”®ï¼Œä½†å®ƒæ˜¯ä¸€ä¸ªç©ºçš„å€û|¼Œé‚£ä¹ˆget()ž®†è¿”回null。如果有必è¦åQŒç”¨containKey()æ–ÒŽ³•æ¥åŒºåˆ«è¿™ä¸¤ç§æƒ…况ã€?br />23.˜q行环境ä¸çš„GC
24.final,finally,finalzie的区åˆ?br />finalåQ?br />finalå¯ä»¥è®©ä½ æŽ§åˆ¶ä½ çš„æˆå‘˜ã€æ–¹æ³•或者是一个类是å¦å¯è¢«è¦†å†™æˆ–ç‘ô承ç‰åŠŸèƒ½åQŒè¿™äº›ç‰¹ç‚¹ä‹Éfinal在Java䏿‹¥æœ‰äº†ä¸€ä¸ªä¸å¯æˆ–¾~ºçš„åœîC½åQŒä¹Ÿæ˜¯å¦ä¹ Javaæ—¶å¿…™å»è¦çŸ¥é“和掌æ¡çš„关键å—之一ã€?br />finalæˆå‘˜
å½“ä½ åœ¨ç±»ä¸å®šä¹‰å˜é‡æ—¶åQŒåœ¨å…¶å‰é¢åŠ ä¸Šfinal关键å—,那便是说åQŒè¿™ä¸ªå˜é‡ä¸€æ—¦è¢«åˆå§‹åŒ–便ä¸å¯æ”¹å˜åQŒè¿™é‡Œä¸å¯æ”¹å˜çš„æ„æ€å¯¹åŸºæœ¬¾cÕdž‹æ¥è¯´æ˜¯å…¶å€ég¸å¯å˜åQŒè€Œå¯¹äºŽå¯¹è±¡å˜é‡æ¥è¯´å…¶å¼•用ä¸å¯å†å˜ã€‚å…¶åˆå§‹åŒ–å¯ä»¥åœ¨ä¸¤ä¸ªåœ°æ–¹åQŒä¸€æ˜¯å…¶å®šä¹‰å¤„ï¼ŒäºŒæ˜¯åœ¨æž„é€ å‡½æ•îC¸åQŒä¸¤è€…åªèƒ½é€‰å…¶ä¸€ã€?br />˜q˜æœ‰ä¸€¿U用法是定义æ–ÒŽ³•ä¸çš„傿•°ä¸ºfinalåQŒå¯¹äºŽåŸºæœ¬ç±»åž‹çš„å˜é‡åQŒè¿™æ ·åšòq¶æ²¡æœ‰ä»€ä¹ˆå®žé™…æ„ä¹‰ï¼Œå› äØ“åŸºæœ¬¾cÕdž‹çš„å˜é‡åœ¨è°ƒç”¨æ–ÒŽ³•æ—¶æ˜¯ä¼ å€¼çš„åQŒä¹Ÿž®±æ˜¯è¯´ä½ å¯ä»¥åœ¨æ–¹æ³•䏿›´æ”¹˜q™ä¸ªå‚æ•°å˜é‡è€Œä¸ä¼šåª„å“到调用è¯å¥åQŒç„¶è€Œå¯¹äºŽå¯¹è±¡å˜é‡ï¼Œå´æ˜¾å¾—很实用åQŒå› 为对象å˜é‡åœ¨ä¼ é€’æ—¶æ˜¯ä¼ é€’å…¶å¼•ç”¨åQŒè¿™æ ·ä½ 在方法ä¸å¯¹å¯¹è±¡å˜é‡çš„修改也会影å“到调用è¯å¥ä¸çš„对象å˜é‡ï¼Œå½“ä½ åœ¨æ–¹æ³•ä¸ä¸éœ€è¦æ”¹å˜ä½œä¸ºå‚数的对象å˜é‡æ—Óž¼Œæ˜Žç¡®ä½¿ç”¨final˜q›è¡Œå£°æ˜ŽåQŒä¼šé˜²æ¢ä½ æ— æ„的修改而媄å“到调用æ–ÒŽ³•ã€?br />finalæ–ÒŽ³•
ž®†æ–¹æ³•å£°æ˜ŽäØ“finalé‚£æœ‰ä¸¤ä¸ªåŽŸå› åQŒç¬¬ä¸€ž®±æ˜¯è¯´æ˜Žä½ å·²¾l知é“这个方法æä¾›çš„åŠŸèƒ½å·²ç»æ»¡èƒöä½ è¦æ±‚,ä¸éœ€è¦è¿›è¡Œæ‰©å±•,òq¶ä¸”也ä¸å…许ä»ÖM½•从椾cÈ‘ô承的¾cÀL¥è¦†å†™˜q™ä¸ªæ–ÒŽ³•åQŒä½†æ˜¯ç‘ô承ä»ç„¶å¯ä»¥ç‘ô承这个方法,也就是说å¯ä»¥ç›´æŽ¥ä½¿ç”¨ã€‚第二就是å…许编译器ž®†æ‰€æœ‰å¯¹æ¤æ–¹æ³•的调用转化为inlineåQˆè¡Œå†…)调用的机åˆÓž¼Œå®ƒä¼šä½¿ä½ 在调用finalæ–ÒŽ³•æ—Óž¼Œç›´æŽ¥ž®†æ–¹æ³•主体æ’å…¥åˆ°è°ƒç”¨å¤„ï¼Œè€Œä¸æ˜¯è¿›è¡Œä¾‹è¡Œçš„æ–ÒŽ³•调用åQŒä¾‹å¦‚ä¿å˜æ–ç‚¹ï¼ŒåŽ‹æ ˆ½{‰ï¼Œ˜q™æ ·å¯èƒ½ä¼šä‹Éä½ çš„½E‹åºæ•ˆçŽ‡æœ‰æ‰€æé«˜åQŒç„¶è€Œå½“ä½ çš„æ–ÒŽ³•ä¸ÖM½“éžå¸¸åºžå¤§æ—Óž¼Œæˆ–ä½ åœ¨å¤šå¤„è°ƒç”¨æ¤æ–ÒŽ³•åQŒé‚£ä¹ˆä½ 的调用主体代ç 便会迅速膨胀åQŒå¯èƒ½åè€Œä¼šå½±å“æ•ˆçއåQŒæ‰€ä»¥ä½ è¦æ…Žç”¨final˜q›è¡Œæ–ÒŽ³•定义ã€?br />final¾c?br />å½“ä½ ž®†final用于¾c»èín上时åQŒä½ ž®±éœ€è¦ä»”¾l†è€ƒè™‘åQŒå› ä¸ÞZ¸€ä¸ªfinal¾cÀL˜¯æ— 法被ä“Q何äh¾l§æ‰¿çš„,那也ž®±æ„å‘³ç€æ¤ç±»åœ¨ä¸€ä¸ªç‘ôæ‰¿æ ‘ä¸æ˜¯ä¸€ä¸ªå¶åç±»åQŒåƈ且椾cÈš„è®¾è®¡å·²è¢«è®¤äØ“å¾ˆå®Œ¾ŸŽè€Œä¸éœ€è¦è¿›è¡Œä¿®æ”ÒŽˆ–扩展。对于final¾cÖM¸çš„æˆå‘˜ï¼Œä½ å¯ä»¥å®šä¹‰å…¶ä¸ºfinalåQŒä¹Ÿå¯ä»¥ä¸æ˜¯final。而对于方法,ç”׃ºŽæ‰€å±žç±»ä¸ºfinal的关¾p»ï¼Œè‡ªç„¶ä¹Ÿå°±æˆäº†finalåž‹çš„ã€‚ä½ ä¹Ÿå¯ä»¥æ˜Ž¼‹®çš„¾l™final¾cÖM¸çš„æ–¹æ³•åŠ ä¸Šä¸€ä¸ªfinalåQŒä½†˜q™æ˜¾ç„¶æ²¡æœ‰æ„义ã€?/p>
finally:
finally 关键嗿˜¯å¯?Java å¼‚å¸¸å¤„ç†æ¨¡åž‹çš„æœ€ä½Œ™¡¥å……ã€?finally ¾l“æž„ä½¿ä»£ç æ€ÖM¼šæ‰§è¡ŒåQŒè€Œä¸½Ž¡æœ‰æ— 异常å‘生。ä‹Éç”?finally å¯ä»¥¾l´æŠ¤å¯¹è±¡çš„内部状æ€ï¼Œòq¶å¯ä»¥æ¸…ç†éžå†…å˜èµ„æºã€‚如果没æœ?finallyåQŒæ‚¨çš„代ç 就会很费解。例如,下é¢çš„代ç 说明,在ä¸ä½¿ç”¨ finally çš„æƒ…å†µä¸‹æ‚¨å¦‚ä½•ç¼–å†™ä»£ç æ¥é‡Šæ”¾éžå†…å˜èµ„æºï¼š
finalizeåQ?
æ ÒŽ®Javaè¯è¨€è§„范åQŒJVMä¿è¯è°ƒç”¨finalize函数之å‰åQŒè¿™ä¸ªå¯¹è±¡æ˜¯ä¸å¯è¾„¡š„åQŒä½†æ˜¯JVMä¸ä¿è¯è¿™ä¸ªå‡½æ•îC¸€å®šä¼šè¢«è°ƒç”¨ã€‚å¦å¤–,规范˜q˜ä¿è¯finalize函数最多è¿è¡Œä¸€‹Æ¡ã€?br />通常åQŒfinalize用于一些ä¸å®ÒŽ˜“控制ã€åƈ且éžå¸”R‡è¦èµ„æºçš„释放åQŒä¾‹å¦‚一些I/Oçš„æ“作,数æ®çš„连接。这些资æºçš„释放å¯ÒŽ•´ä¸ªåº”ç”¨ç¨‹åºæ˜¯éžå¸¸å…³é”®çš„。在˜q™ç§æƒ…况下,½E‹åºå‘˜åº”该以通过½E‹åºæœ¬èín½Ž¡ç†(包括释放)˜q™äº›èµ„æºä¸ÞZ¸»åQŒä»¥finalizeå‡½æ•°é‡Šæ”¾èµ„æºæ–¹å¼ä¸ø™¾…åQŒåÅžæˆä¸€¿UåŒä¿é™©çš„ç®¡ç†æœºåˆÓž¼Œè€Œä¸åº”该仅仅ä¾é finalizeæ¥é‡Šæ”¾èµ„æºã€?br />