1. String、StringBuffer、StringBuilder的區(qū)別 String不變對(duì)象,StringBuffer可變字符串,方法為synchronized,StringBuilder可變字符串,方法非synchronized
2. finally、final、finalize的區(qū)別 finally在try-cache-finally中使用;final可從類、方法、屬性三個(gè)方面解釋;finalize為Object類的方法,其調(diào)用是不可預(yù)測(cè)的。
3. Java中synchronized的作用 同步,相當(dāng)于對(duì)象鎖
4. 簡(jiǎn)要描述一下java.io包中關(guān)于流的類的結(jié)構(gòu),其中用到了什么模式 Wrapper或Decorator模式
5. HashMap和Hashtable的異同 都實(shí)現(xiàn)了Map接口;HashMap允許null鍵和null值,方法非同步;Hashtable不允許null鍵和null鍵,方法同步
6. 簡(jiǎn)要介紹一下Comparable接口和Comparator比較器 實(shí)現(xiàn)Comparable的類的對(duì)象可以比較,必須實(shí)現(xiàn)compareTo方法;實(shí)現(xiàn)Comparator的類為比較器,必須實(shí)現(xiàn)compare方法,可以用在Collectoins.sort方法的參數(shù)中,用來(lái)比較兩個(gè)對(duì)象的大小關(guān)系
7. ArrayList、LinkedList、Vector的異同 ArrayList、Vector為List基于數(shù)組的實(shí)現(xiàn);LinkedList為基于鏈表的實(shí)現(xiàn);如果隨機(jī)查找一個(gè)值,則基于數(shù)組的實(shí)現(xiàn)較快,但在某一位置刪除和添加一元素需要移動(dòng)一些元素;但基于鏈表的實(shí)現(xiàn)利于添加和刪除,不利于查詢;Vector的方法為同步的,ArrayList和LinkedList的方法非同步
8. 關(guān)于運(yùn)算符的短路問(wèn)題,如:&&、||等
9. 在什么時(shí)候使用assert語(yǔ)句 可以在預(yù)計(jì)正常情況下不會(huì)到達(dá)的任何位置上放置斷言;斷言可以用于驗(yàn)證傳遞給私有方法的參數(shù)
10. 為什么要有GC? Java 程序員不用擔(dān)心內(nèi)存管理,因?yàn)槔占鲿?huì)自動(dòng)進(jìn)行管理
11. Java中異常分為幾種?有什么區(qū)別? 受檢查異常、非檢查異常;繼承自Exception、繼承自RuntimeException;代碼是否明確捕獲異常
12. 說(shuō)明List、Set、Map的區(qū)別 List只是一個(gè)元素列表;Set是一個(gè)集合,無(wú)重復(fù)元素;Map是鍵值對(duì)
13. 抽象類和接口的區(qū)別
14. 簡(jiǎn)要說(shuō)明實(shí)現(xiàn)equals和hashCode方法的必要性 equals用于判斷兩個(gè)對(duì)象是否相等,hashCode是對(duì)象的hash值;假設(shè)用在Map、List、Set這樣的集合中,如果不適當(dāng)?shù)膶?shí)現(xiàn)這兩個(gè)方法,可能造成元素在某些集合對(duì)象中使用錯(cuò)誤、或影響使用的效率
15. 要使一個(gè)對(duì)象可以在網(wǎng)絡(luò)中傳輸需要實(shí)現(xiàn)什么接口? Java.io.Serializable 16. 下面幾句話哪句正確? (1)a.equals(b)==true,但a.hashCode() !=b.hashCode() (2)a.hashCode()==b.hashCode(),但a.equals(b)==false 對(duì) (3) a.hashCode()==b.hashCode(),但a.equals(b)==true 對(duì)
17. Override和Overload的區(qū)別
18. 使用annotation有什么好處? 以前關(guān)于類的相關(guān)配置一般都寫在xml文件中,從而對(duì)于某一個(gè)類的信息需要在兩處維護(hù);annotation使得某一類的信息可以寫在一處,利于維護(hù)
19. 復(fù)制對(duì)象需要實(shí)現(xiàn)什么接口?什么是淺復(fù)制和深復(fù)制? java.lang.Cloneable;淺復(fù)制只是引用復(fù)制,深復(fù)制對(duì)象復(fù)制,結(jié)合例子回答
20. 面向接口編程的好處?試舉例說(shuō)明 可以舉關(guān)于List接口的例子
21. 什么是自動(dòng)裝箱、拆箱?
22. transiant關(guān)鍵字的作用?怎樣實(shí)現(xiàn)對(duì)象的序列化和反序列化? 某些值不參與序列化;ObjectInputStream、ObjectOutputStream
23. Java怎樣實(shí)現(xiàn)多線程? 繼承Thread或?qū)崿F(xiàn)Runnable接口
24. 利用wait和notify實(shí)現(xiàn)讀者—寫者問(wèn)題 注意:wait和notify的代碼必須在synchronized塊之中
25. notify和notifyAll的區(qū)別 notify只喚醒一個(gè)線程,notifyAll喚醒所有等待的線程
26. char型變量中能不能存貯一個(gè)中文漢字?為什么? 是能夠定義成為一個(gè)中文的,因?yàn)?/span>java中以unicode編碼,一個(gè)char占16個(gè)字節(jié),所以放一個(gè)中文是沒(méi)問(wèn)題的
27. 簡(jiǎn)述一下模板類的好處 分幾個(gè)方面說(shuō)明:1)<? extends Number>可以指定參數(shù)類的范圍;2)java.lang.Comparable<T>,可以指定比較類型為某一類型
28. 什么是正則表達(dá)式?在Java中怎樣使用? Pattern,、Matcher
29. 在Java中單例怎么實(shí)現(xiàn)? 有兩種方式:1)延遲初始化方式;2)立即初始化方式,比較兩種單例實(shí)現(xiàn)的優(yōu)缺點(diǎn)
30. 在Java中工廠模式怎么實(shí)現(xiàn)? 寫代碼說(shuō)明
31. 當(dāng)一個(gè)對(duì)象被當(dāng)作參數(shù)傳遞到一個(gè)方法后,此方法可改變這個(gè)對(duì)象的屬性,并可返回變化后的結(jié)果,那么這里到底是值傳遞還是引用傳遞? 值傳遞
32. 列出某文件夾下的所有文件 遞歸
33. 在java中怎樣調(diào)用系統(tǒng)命令? System.getRuntime().exec
34. 什么是AOP?它提供了什么功能?
35. Java國(guó)際化相關(guān) Locale、ResourceBundle
36. 將當(dāng)前日期按“yyyy-MM-dd”的形式打印出來(lái) SimpleDateFormat、Date
===================================
1. JSP和Servlet的關(guān)系 Jsp會(huì)被編譯為servlet
2. <jsp:include page=”file.jsp”>和<%@ include=”file.jsp” %>區(qū)別? 1) 前者在運(yùn)行時(shí)發(fā)生,后者在編譯時(shí)發(fā)生 2) 前者反映包含文件的變化,后者不會(huì),除非重啟服務(wù)器 3)可從jsp編譯成的servlet文件看出區(qū)別
3. forward和redirect的區(qū)別 1) forward對(duì)于客戶端并不知情,是服務(wù)端的動(dòng)作,url鏈接不變化 2) redirect服務(wù)器先向客戶端發(fā)送302重定向,客戶端再向服務(wù)器請(qǐng)求頁(yè)面,多出一次往返,url發(fā)生變化
4. url重寫是什么?怎么實(shí)現(xiàn)? 為了支持會(huì)話,在url鏈接中寫入jsessionid;response.encodeUrl和jstl標(biāo)簽<c:url>
5. 什么是session?session通過(guò)什么傳遞? 默認(rèn)為通過(guò)cookie傳遞;如果cookie被禁用,則通過(guò)url重寫來(lái)維護(hù)會(huì)話
6. Get和Post的區(qū)別?
7. 請(qǐng)簡(jiǎn)述一下MVC模式,如果用Java實(shí)現(xiàn)MVC請(qǐng)簡(jiǎn)述怎樣實(shí)現(xiàn)? 參照Structs和Spring都行 前端控制器—將請(qǐng)求映射到具體控制器的類—具體控制器—得到模型數(shù)據(jù)—生成視圖
8. 在Java Servlet開(kāi)發(fā)中,Listener、Filter、Servlet作用是什么? Listener在web程序啟動(dòng)時(shí)順序執(zhí)行,用于初始化一些全局資源 Filter用于過(guò)濾請(qǐng)求,可以用作權(quán)限控制、統(tǒng)計(jì)、日志記錄等 Servlet具體用于用戶請(qǐng)求的處理
9. 在Java Web應(yīng)用程序中,有幾種作用域? 四種;Application、Session、Request、Page
10. 請(qǐng)簡(jiǎn)要介紹一種你熟悉的MVC框架,如:Struts、Spring等
11. HTTP200、302、404、500各代表什么含義?怎樣在程序中處理這些錯(cuò)誤? 在web.xml中聲明統(tǒng)一的錯(cuò)誤頁(yè)面 |
|