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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論