一些面試題Java_第1頁(yè)
一些面試題Java_第2頁(yè)
一些面試題Java_第3頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、一些面試題-Java1通過(guò)什么參數(shù)分配J ava內(nèi)存使用?J ava -Xms128m -Xmx512m2. Treemap和Hashmap區(qū)別是什么?TreeMap對(duì)Key進(jìn)行排序,而HashMap不排序。HashMap通過(guò)hashcode對(duì)其內(nèi)容 進(jìn)行快速查找,而TreeMap中所有的元素都保持著某種固定的順序, 如果你需要得到 一個(gè)有序的結(jié)果你就應(yīng)該 使用TreeMap( HashMap中元素的排列順序是不固定的)。3. 為何加入:private static fin al lo ng serialVersio nUID?可以利用JDK的bin目錄下的serialver.exe工具產(chǎn)生。

2、序列化時(shí)為了保持版本的兼容性,即在版本升級(jí)時(shí)反序列化仍保持 對(duì)象的唯一性。 在J ava中serialVersionUID是唯一控制著能否反序列化成功的標(biāo)志,只要這個(gè)值不一樣,就無(wú)法反序列化成功。4. JSP編譯和執(zhí)行原理?JSP文件的Scriptlets在編譯后將被包含于該 JSP servlet的service。方法。當(dāng)JSP引 擎處理客戶端請(qǐng)求時(shí),JSP Scriptlets在被請(qǐng)求的時(shí)候被執(zhí)行。如果 scriptlet產(chǎn)生輸出, 輸出將在out (JSPWriter)對(duì)象中進(jìn)行緩存然后最終發(fā)送到客戶端。5. 怎么解決JSP/Servlet web中中文亂碼的問(wèn)題6. JDBC 中,st

3、atement,prepared statement ,Callable statement區(qū)別是什么?Stateme nt接口提供了執(zhí)行語(yǔ)句和獲取結(jié)果的基本方法。PreparedStateme nt接口添加了處理IN參數(shù)的方法;而 CallableStatement添加了處理OUT參數(shù)的方法。PreparedStatemen對(duì)于同一條語(yǔ)句的多次執(zhí)行,Statement每次都要把SQL語(yǔ)句發(fā)送 給數(shù)據(jù)庫(kù),這樣做效率明顯不高,而如果數(shù)據(jù)庫(kù)支持預(yù)編譯PreparedStatemen可以先把 要執(zhí)行的語(yǔ)句一次發(fā)給它,然后每次執(zhí)行而不必發(fā)送相同的語(yǔ)句,效率當(dāng)然提高,當(dāng)然如 果數(shù)據(jù)庫(kù)不支持預(yù)編譯,Pre

4、paredStatemen會(huì)象Statement樣工作,只是效率不高而不 需要用戶工手干預(yù).另外PreparedStatemen還支持接收參數(shù).在預(yù)編譯后只要傳輸不同的參數(shù)就可以執(zhí) 行,大大提高了性能.CallableStatement是PreparedStatemen的子類(lèi),它只是用來(lái)執(zhí)行存儲(chǔ)過(guò)程的.7什么情況下會(huì)拋出 打開(kāi)游標(biāo)超過(guò)最大數(shù)”的異常?8. XML解析中:SAX和DOM的不同點(diǎn)有哪些?9. 抽象類(lèi)和接口的區(qū)別?10. 什么是中間件11. JSP的內(nèi)置對(duì)象有那些?Out, request, resp on se, applicati on, sessi on, excepti on

5、, con fig, page, pageC on text.12. 有那些方法能防止、化解對(duì) web網(wǎng)站的攻擊?13. 如何提高訪問(wèn)web網(wǎng)站的速度?14.J ava可采用的MVC框架技術(shù)有哪些?他們的特征和適用環(huán)境如何?Struts, WebWork, Spring, JSF 15. MVC的優(yōu)缺點(diǎn)是什么,適用范圍如何?MVC開(kāi)發(fā)模式分離數(shù)據(jù)訪問(wèn)層和數(shù)據(jù)表現(xiàn)層,并使開(kāi)發(fā)人員開(kāi)發(fā)一個(gè)可伸縮性的 強(qiáng)、便于擴(kuò)展的控制器,來(lái)維護(hù)整個(gè)流程。16. TOMCAT配置中,有關(guān)安全的設(shè)置選項(xiàng)有哪些?17. Apach與Tomcat配合使用,是為解決什么問(wèn)題?怎么實(shí)現(xiàn)?運(yùn)行過(guò)程如何?18. Collecti

6、on 的四個(gè)接口add();addAll ();isEmpty();iterator。;contain s();19. Cookie20. 多態(tài)21. Web上參數(shù)的傳輸方式22. HashTable和 HashMap 的區(qū)別Hashtable和HashMap類(lèi)有三個(gè)重要的不同之處。第一個(gè)不同主要是歷史原因。Hashtable是基于陳舊的Dictionary類(lèi)的,HashMap是J ava 1.2引進(jìn)的Map接口的一個(gè)實(shí)現(xiàn)。也許最重要的不同是Hashtable的方法是同步的,而HashMap的方法不是。這就意 味著,雖然你可以不用采取任何特殊的行為就可以在一個(gè)多線程的應(yīng)用程序中用一個(gè) Hash

7、table,但你必須同樣地為一個(gè) HashMap提供外同步。一個(gè)方便的方法就是利用 Collections類(lèi)的靜態(tài)的synchronizedMap()方法,它創(chuàng)建一個(gè)線程安全的 Map對(duì)象,并 把它作為一個(gè)封裝的對(duì)象來(lái)返回。這個(gè)對(duì)象的方法可以讓你同步訪問(wèn)潛在的HashMap。這么做的結(jié)果就是當(dāng)你不需要同步時(shí),你不能切斷 Hashtable中的同步(比如在一個(gè)單 線程的應(yīng)用程序中),而且同步增加了很多處理費(fèi)用。第三點(diǎn)不同是,只有HashMap可以讓你將空值作為一個(gè)表的條目的key或v alue。HashMap中只有一條記錄可以是一個(gè)空的 key,但任意數(shù)量的條目可以是空的 v alue。 這就是

8、說(shuō),如果在表中沒(méi)有發(fā)現(xiàn)搜索鍵,或者如果發(fā)現(xiàn)了搜索鍵,但它是一個(gè)空的值, 那么get()將返回null。如果有必要,用containKey()方法來(lái)區(qū)別這兩種情況。23. 運(yùn)行環(huán)境中的GC24. final,finally,finalzie 的區(qū)別final:final可以讓你控制你的成員、方法或者是一個(gè)類(lèi)是否可被覆寫(xiě)或繼承等功能,這些特點(diǎn)使final在J ava中擁有了一個(gè)不可或缺的地位,也是學(xué)習(xí)J ava時(shí)必須要知道和掌握的關(guān)鍵字之一。final 成員當(dāng)你在類(lèi)中定義變量時(shí),在其前面加上 final關(guān)鍵字,那便是說(shuō),這個(gè)變量一旦被初始化便不可改變,這里不可改變的意思對(duì)基本類(lèi)型來(lái)說(shuō)是其值不可變,

9、而對(duì)于對(duì)象變量來(lái)說(shuō)其引用不可再變。其初始化可以在兩個(gè)地方,一是其定義處,二是在構(gòu)造函 數(shù)中,兩者只能選其一還有一種用法是定義方法中的參數(shù)為final,對(duì)于基本類(lèi)型的變量,這樣做并沒(méi)有什 么實(shí)際意義,因?yàn)榛绢?lèi)型的變量在調(diào)用方法時(shí)是傳值的,也就是說(shuō)你可以在方法中 更改這個(gè)參數(shù)變量而不會(huì)影響到調(diào)用語(yǔ)句,然而對(duì)于對(duì)象變量,卻顯得很實(shí)用,因?yàn)?對(duì)象變量在傳遞時(shí)是傳遞其引用,這樣你在方法中對(duì)對(duì)象變量的修改也會(huì)影響到調(diào)用 語(yǔ)句中的對(duì)象變量,當(dāng)你在方法中不需要改變作為參數(shù)的對(duì)象變量時(shí),明確使用final進(jìn)行聲明,會(huì)防止你無(wú)意的修改而影響到調(diào)用方法。final方法將方法聲明為final那有兩個(gè)原因,第一就是說(shuō)

10、明你已經(jīng)知道這個(gè)方法提供的功能已經(jīng)滿足你要求,不需要進(jìn)行擴(kuò)展,并且也不允許任何從此類(lèi)繼承的類(lèi)來(lái)覆寫(xiě)這個(gè)方 法,但是繼承仍然可以繼承這個(gè)方法,也就是說(shuō)可以直接使用。第二就是允許編譯器 將所有對(duì)此方法的調(diào)用轉(zhuǎn)化為inline (行內(nèi))調(diào)用的機(jī)制,它會(huì)使你在調(diào)用final方法時(shí), 直接將方法主體插入到調(diào)用處,而不是進(jìn)行例行的方法調(diào)用,例如保存斷點(diǎn),壓棧等, 這樣可能會(huì)使你的程序效率有所提高,然而當(dāng)你的方法主體非常龐大時(shí),或你在多處 調(diào)用此方法,那么你的調(diào)用主體代碼便會(huì)迅速膨脹,可能反而會(huì)影響效率,所以你要 慎用final進(jìn)行方法定義。final 類(lèi)當(dāng)你將final用于類(lèi)身上時(shí),你就需要仔細(xì)考慮,因?yàn)?/p>

11、一個(gè)final類(lèi)是無(wú)法被任何人繼承的,那也就意味著此類(lèi)在一個(gè)繼承樹(shù)中是一個(gè)葉子類(lèi),并且此類(lèi)的設(shè)計(jì)已被認(rèn)為 很完美而不需要進(jìn)行修改或擴(kuò)展。對(duì)于final類(lèi)中的成員,你可以定義其為final,也可以不是final。而對(duì)于方法,由于所屬類(lèi)為final的關(guān)系,自然也就成了 final型的。你也 可以明確的給final類(lèi)中的方法加上一個(gè)final,但這顯然沒(méi)有意義。fin ally:fin ally關(guān)鍵字是對(duì)J ava異常處理模型的最佳補(bǔ)充。fin ally結(jié)構(gòu)使代碼總會(huì)執(zhí) 行,而不管有無(wú)異常發(fā)生。使用fin ally可以維護(hù)對(duì)象的內(nèi)部狀態(tài),并可以清理非內(nèi)存 資源。如果沒(méi)有fin ally,您的代碼就會(huì)很費(fèi)解。例如,下面的代碼說(shuō)明,在不使用fin ally 的情況下您如何編寫(xiě)代碼來(lái)釋放非內(nèi)存資源:finalize :根據(jù)J ava語(yǔ)言規(guī)范,JVM保證調(diào)用finalize函數(shù)之前,這個(gè)對(duì)象是不可達(dá)的,但 是JVM不保證這個(gè)函數(shù)一定會(huì)被調(diào)用。另外,規(guī)范還保證

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論