2020国产成人精品视频,性做久久久久久久久,亚洲国产成人久久综合一区,亚洲影院天堂中文av色

分享

共享一些面試題

 web2.0客 2007-01-14


1.通過(guò)什么參數(shù)分配Java內(nèi)存使用?
java -Xms128m -Xmx512m

2.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 final long serialVersionUID?
可以利用JDK的bin目錄下的serialver.exe工具產(chǎn)生。
序列化時(shí)為了保持版本的兼容性,即在版本升級(jí)時(shí)反序列化仍保持 對(duì)象的唯一性。在java中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中,statement,prepared statement ,Callable statement的區(qū)別是什么?
Statement 接口提供了執(zhí)行語(yǔ)句和獲取結(jié)果的基本方法。PreparedStatement 接口添加了處理 IN 參數(shù)的方法;而 CallableStatement 添加了處理 OUT 參數(shù)的方法。
PreparedStatement:對(duì)于同一條語(yǔ)句的多次執(zhí)行,Statement每次都要把SQL語(yǔ)句發(fā)送給數(shù)據(jù)
庫(kù),這樣做效率明顯不高,而如果數(shù)據(jù)庫(kù)支持預(yù)編譯,PreparedStatement可以先把要執(zhí)行的語(yǔ)句一次發(fā)給它,然后每次執(zhí)行而不必發(fā)送相同的語(yǔ)句,效率當(dāng)然提高,當(dāng)然如果數(shù)據(jù)庫(kù)不支持預(yù)編譯,
PreparedStatement會(huì)象Statement一樣工作,只是效率不高而不需要用戶工手干預(yù).
    另外PreparedStatement還支持接收參數(shù).在預(yù)編譯后只要傳輸不同的參數(shù)就可以執(zhí)行,大大
提高了性能.
CallableStatement:是PreparedStatement的子類,它只是用來(lái)執(zhí)行存儲(chǔ)過(guò)程的.

7.什么情況下會(huì)拋出“打開(kāi)游標(biāo)超過(guò)最大數(shù)”的異常?

8.XML解析中:SAX和DOM的不同點(diǎn)有哪些?

9.抽象類和接口的區(qū)別?

10.什么是中間件

11.JSP的內(nèi)置對(duì)象有那些?
Out, request, response, application, session, exception, config, page, pageContext.

12.有那些方法能防止、化解對(duì)web網(wǎng)站的攻擊?
13.如何提高訪問(wèn)web網(wǎng)站的速度?
14.Java可采用的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.Collection的四個(gè)接口
add();
addAll();
isEmpty();
iterator();
contains();

19.Cookie
20.多態(tài)
21.Web上參數(shù)的傳輸方式
22.HashTable和HashMap的區(qū)別
Hashtable和HashMap類有三個(gè)重要的不同之處。第一個(gè)不同主要是歷史原因。Hashtable是基于陳舊的Dictionary類的,HashMap是Java 1.2引進(jìn)的Map接口的一個(gè)實(shí)現(xiàn)。
也許最重要的不同是Hashtable的方法是同步的,而HashMap的方法不是。這就意味著,雖然你可以不用采取任何特殊的行為就可以在一個(gè)多線程的應(yīng)用程序中用一個(gè)Hashtable,但你必須同樣地為一個(gè)HashMap提供外同步。一個(gè)方便的方法就是利用Collections類的靜態(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或value。HashMap中只有一條記錄可以是一個(gè)空的key,但任意數(shù)量的條目可以是空的value。這就是說(shuō),如果在表中沒(méi)有發(fā)現(xiàn)搜索鍵,或者如果發(fā)現(xiàn)了搜索鍵,但它是一個(gè)空的值,那么get()將返回null。如果有必要,用containKey()方法來(lái)區(qū)別這兩種情況。
23.運(yùn)行環(huán)境中的GC

24.final,finally,finalzie的區(qū)別
final:
final可以讓你控制你的成員、方法或者是一個(gè)類是否可被覆寫或繼承等功能,這些特點(diǎn)使final在Java中擁有了一個(gè)不可或缺的地位,也是學(xué)習(xí)Java時(shí)必須要知道和掌握的關(guān)鍵字之一。
final成員
當(dāng)你在類中定義變量時(shí),在其前面加上final關(guān)鍵字,那便是說(shuō),這個(gè)變量一旦被初始化便不可改變,這里不可改變的意思對(duì)基本類型來(lái)說(shuō)是其值不可變,而對(duì)于對(duì)象變量來(lái)說(shuō)其引用不可再變。其初始化可以在兩個(gè)地方,一是其定義處,二是在構(gòu)造函數(shù)中,兩者只能選其一。
還有一種用法是定義方法中的參數(shù)為final,對(duì)于基本類型的變量,這樣做并沒(méi)有什么實(shí)際意義,因?yàn)榛绢愋偷淖兞吭谡{(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ō)明你已經(jīng)知道這個(gè)方法提供的功能已經(jīng)滿足你要求,不需要進(jìn)行擴(kuò)展,并且也不允許任何從此類繼承的類來(lái)覆寫這個(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類
當(dāng)你將final用于類身上時(shí),你就需要仔細(xì)考慮,因?yàn)橐粋€(gè)final類是無(wú)法被任何人繼承的,那也就意味著此類在一個(gè)繼承樹(shù)中是一個(gè)葉子類,并且此類的設(shè)計(jì)已被認(rèn)為很完美而不需要進(jìn)行修改或擴(kuò)展。對(duì)于final類中的成員,你可以定義其為final,也可以不是final。而對(duì)于方法,由于所屬類為final的關(guān)系,自然也就成了final型的。你也可以明確的給final類中的方法加上一個(gè)final,但這顯然沒(méi)有意義。

finally:
finally 關(guān)鍵字是對(duì) Java 異常處理模型的最佳補(bǔ)充。 finally 結(jié)構(gòu)使代碼總會(huì)執(zhí)行,而不管有無(wú)異常發(fā)生。使用 finally 可以維護(hù)對(duì)象的內(nèi)部狀態(tài),并可以清理非內(nèi)存資源。如果沒(méi)有 finally,您的代碼就會(huì)很費(fèi)解。例如,下面的代碼說(shuō)明,在不使用 finally 的情況下您如何編寫代碼來(lái)釋放非內(nèi)存資源:

finalize:
根據(jù)Java語(yǔ)言規(guī)范,JVM保證調(diào)用finalize函數(shù)之前,這個(gè)對(duì)象是不可達(dá)的,但是JVM不保證這個(gè)函數(shù)一定會(huì)被調(diào)用。另外,規(guī)范還保證finalize函數(shù)最多運(yùn)行一次。
通常,finalize用于一些不容易控制、并且非常重要資源的釋放,例如一些I/O的操作,數(shù)據(jù)的連接。這些資源的釋放對(duì)整個(gè)應(yīng)用程序是非常關(guān)鍵的。在這種情況下,程序員應(yīng)該以通過(guò)程序本身管理(包括釋放)這些資源為主,以finalize函數(shù)釋放資源方式為輔,形成一種雙保險(xiǎn)的管理機(jī)制,而不應(yīng)該僅僅依靠finalize來(lái)釋放資源。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多