JAVA面試題及答案_第1頁(yè)
JAVA面試題及答案_第2頁(yè)
JAVA面試題及答案_第3頁(yè)
JAVA面試題及答案_第4頁(yè)
JAVA面試題及答案_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、JAVA面試題及答案JAVA而試題大全及答案JAVA面試題及答案:1. J2EE是什么?它包括哪些技術(shù)?解答:從整體上講,J2EE是使用Java技術(shù)開(kāi)發(fā)企業(yè)級(jí)應(yīng)用的工 業(yè)標(biāo)準(zhǔn),它是Java技術(shù)不斷適應(yīng)和促進(jìn)企業(yè)級(jí)應(yīng)用過(guò)程中的產(chǎn)物。 適用于企業(yè)級(jí)應(yīng)用的J2EE,提供一個(gè)平立的、可移植的、多用戶(hù)的、 安全的和基于標(biāo)準(zhǔn)的企業(yè)級(jí)平臺(tái),從而簡(jiǎn)化企業(yè)應(yīng)用的開(kāi)發(fā)、管理 和部署。J2EE是一個(gè)標(biāo)準(zhǔn),而不是一個(gè)現(xiàn)成的產(chǎn)品。主要包括以下這些技術(shù):JDBC (JavaDatabaseConnectivity, Java 數(shù)據(jù)庫(kù)連接)API 是一個(gè) 標(biāo)準(zhǔn)SQL(StructuredQueryLanguage,結(jié)構(gòu)化查

2、詢(xún)語(yǔ)言)數(shù)據(jù)庫(kù)訪(fǎng)問(wèn) 接口,它使數(shù)據(jù)庫(kù)開(kāi)發(fā)人員能夠用標(biāo)準(zhǔn)JavaAPI編寫(xiě)數(shù)據(jù)庫(kù)應(yīng)用程 序。JDBCAPI主要用來(lái)連接數(shù)據(jù)庫(kù)和直接調(diào)用SQL命令執(zhí)行各種SQL 語(yǔ)句。利用JDBCAPI可以執(zhí)行一般的SQL語(yǔ)句、動(dòng)態(tài)SQL語(yǔ)句及帶 IN和OUT參數(shù)的存儲(chǔ)過(guò)程。Java中的JDBC相當(dāng)于Microsoft平臺(tái) 中的 ODBC (OpenDatabaseConnectivity)。2. 測(cè)試生命周期、測(cè)試過(guò)程分為幾個(gè)階段,以及各階段的含義?解答:軟件測(cè)試生命周期一般包括6個(gè)階段:1)計(jì)劃2)分析,3) 設(shè)計(jì),4)構(gòu)建,5)測(cè)試周期,6)最后測(cè)試和實(shí)施,1)計(jì)劃:產(chǎn)品定義階段2).分析:外部文檔階段3)

3、.設(shè)計(jì):文檔架構(gòu)階段4).構(gòu)建:單元測(cè)試階段5).測(cè)試周期:錯(cuò)誤修正,重復(fù)系統(tǒng)測(cè)試階段6).最后的測(cè)試和實(shí)施:代碼凍結(jié)階段JAVA面試相關(guān)基礎(chǔ)知識(shí):1、面向?qū)ο蟮奶卣饔心男┓矫?. 抽象:抽象就是忽略一個(gè)主題中與當(dāng)前目標(biāo)無(wú)關(guān)的那些方面,以便更充 分地注意與當(dāng)前目標(biāo)有關(guān)的方而。抽象并不打算了解全部問(wèn)題,而 只是選擇其中的一部分,暫時(shí)不用部分細(xì)節(jié)。抽象包括兩個(gè)方面, 一是過(guò)程抽象,二是數(shù)據(jù)抽象。2. 繼承:繼承是一種聯(lián)結(jié)類(lèi)的層次模型,并且允許和鼓勵(lì)類(lèi)的重用,它提 供了一種明確表述共性的方法。對(duì)象的一個(gè)新類(lèi)可以從現(xiàn)有的類(lèi)中 派生,這個(gè)過(guò)程稱(chēng)為類(lèi)繼承。新類(lèi)繼承了原始類(lèi)的特性,新類(lèi)稱(chēng)為 原始類(lèi)的派生類(lèi)(

4、子類(lèi)),而原始類(lèi)稱(chēng)為新類(lèi)的基類(lèi)(父類(lèi))。派生類(lèi) 可以從它的基類(lèi)那里繼承方法和實(shí)例變量,并且類(lèi)可以修改或增加 新的方法使之更適合特殊的需要。3. 封裝:封裝是把過(guò)程和數(shù)據(jù)包圍起來(lái),對(duì)數(shù)據(jù)的訪(fǎng)問(wèn)只能通過(guò)己定義的 界而。而向?qū)ο笥?jì)算始于這個(gè)基木概念,即現(xiàn)實(shí)世界可以被描繪成 一系列完全自治、封裝的對(duì)象,這些對(duì)象通過(guò)一個(gè)受保護(hù)的接口訪(fǎng) 問(wèn)其他對(duì)象。4. 多態(tài)性:多態(tài)性是指允許不同類(lèi)的對(duì)象對(duì)同一消息作出響應(yīng)。多態(tài)性包扌舌 參數(shù)化多態(tài)性和包含多態(tài)性。多態(tài)性語(yǔ)言具有靈活、抽象、行為共 享、代碼共享的優(yōu)勢(shì),很好的解決了應(yīng)用程序函數(shù)同名問(wèn)題。2、String是最基本的數(shù)據(jù)類(lèi)型嗎?基本數(shù)據(jù)類(lèi)型包括 byte、int

5、、char long、floatdouble boolean 和 shorto3、int和Integer有什么區(qū)別Java提供兩種不同的類(lèi)型:引用類(lèi)型和原始類(lèi)型(或內(nèi)置類(lèi)型)。 Int是java的原始數(shù)據(jù)類(lèi)型,Integer是java為int提供的封裝類(lèi)。 Java為每個(gè)原始類(lèi)型提供了封裝類(lèi)。原始類(lèi)型封裝類(lèi)booleanBooleancharCharacterbyteByteshortShortintintegerlongLongfloatFloatdoubleDouble引用類(lèi)型和原始類(lèi)型的行為完全不同,并且它們具有不同的語(yǔ)義。 引用類(lèi)型和原始類(lèi)型具有不同的特征和用法,它們包括大小和速 度問(wèn)

6、題,這種類(lèi)型以哪種類(lèi)型的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ),當(dāng)引用類(lèi)型和原始 類(lèi)型用作某個(gè)類(lèi)的實(shí)例數(shù)據(jù)時(shí)所指定的缺省值。對(duì)象引用實(shí)例變量 的缺省值為null,而原始類(lèi)型實(shí)例變量的缺省值與它們的類(lèi)型有關(guān)。4、String 和 StringBuffer 的區(qū)別JAVA平臺(tái)提供了兩個(gè)類(lèi):String和StringBuffer,它們可以?xún)?chǔ) 存和操作字符串,即包含多個(gè)字符的字符數(shù)據(jù)。這個(gè)String類(lèi)提供 了數(shù)值不可改變的字符串。而這個(gè)StringBuffer類(lèi)提供的字符串進(jìn) 行修改。當(dāng)你知道字符數(shù)據(jù)要改變的時(shí)候你就可以使用StringBuffero典型地,你可以使用StringBuffers來(lái)動(dòng)態(tài)構(gòu)造字 符數(shù)據(jù)。5、運(yùn)行時(shí)

7、異常與一般異常有何異同?異常表示程序運(yùn)行過(guò)程中可能出現(xiàn)的非正常狀態(tài),運(yùn)行時(shí)異常表 示虛擬機(jī)的通常操作中可能遇到的異常,是一種常見(jiàn)運(yùn)行錯(cuò)誤。 java編譯器要求方法必須聲明拋出可能發(fā)生的非運(yùn)行時(shí)異常,但是 并不要求必須聲明拋出未被捕獲的運(yùn)行時(shí)異常。6、說(shuō)岀Servlet的生命周期,并說(shuō)出Servlet和CGI的區(qū)別。Servlet被服務(wù)器實(shí)例化后,容器運(yùn)行其init方法,請(qǐng)求到達(dá) 時(shí)運(yùn)行其service方法,service方法自動(dòng)派遣運(yùn)行與請(qǐng)求對(duì)應(yīng)的 doXXX方法(doGet, doPost)等,當(dāng)服務(wù)器決定將實(shí)例銷(xiāo)毀的時(shí)候調(diào) 用其destroy方法。與cgi的區(qū)別在于servlet處于服務(wù)器

8、進(jìn)程中,它通過(guò)多線(xiàn)程方 式運(yùn)行其service方法,一個(gè)實(shí)例可以服務(wù)于多個(gè)請(qǐng)求,并且其實(shí) 例一般不會(huì)銷(xiāo)毀,而CGI對(duì)每個(gè)請(qǐng)求都產(chǎn)生新的進(jìn)程,服務(wù)完成后 就銷(xiāo)毀,所以效率上低于servleto7、說(shuō)岀ArrayList, Vector, LinkedList的存儲(chǔ)性能和特性ArrayList和Vector都是使用數(shù)組方式存儲(chǔ)數(shù)據(jù),此數(shù)組元素 數(shù)大于實(shí)際存儲(chǔ)的數(shù)據(jù)以便增加和插入元素,它們都允許直接按序 號(hào)索引元素,但是插入元素要涉及數(shù)組元素移動(dòng)等內(nèi)存操作,所以 索引數(shù)據(jù)快而插入數(shù)據(jù)慢,Vector由于使用了 synchronized方法 (線(xiàn)程安全),通常性能上較ArrayList差,而Linke

9、dList使用雙向 鏈表實(shí)現(xiàn)存儲(chǔ),按序號(hào)索引數(shù)據(jù)需要進(jìn)行前向或后向遍歷,但是插 入數(shù)據(jù)時(shí)只需要記錄木項(xiàng)的前后項(xiàng)即可,所以插入速度較快。8、EJB是基于哪些技術(shù)實(shí)現(xiàn)的?并說(shuō)出SessionBean和 EntityBean 的區(qū)別,StatefulBean 和 StatelessBean 的區(qū)別。EJB 包括 SessionBean、EntityBean MessageDrivenBean, 基于 JNDI、RMK JAT等技術(shù)實(shí)現(xiàn)。SessionBean在J2EE應(yīng)用程序中被用來(lái)完成一些服務(wù)器端的業(yè) 務(wù)操作,例如訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)、調(diào)用其他EJB組件。EntityBean被用來(lái) 代表應(yīng)用系統(tǒng)中用到的數(shù)據(jù)

10、。對(duì)于客戶(hù)機(jī),SessionBean是一種非持久性對(duì)象,它實(shí)現(xiàn)某些在 服務(wù)器上運(yùn)行的業(yè)務(wù)邏輯。對(duì)于客戶(hù)機(jī),EntityBean是一種持久性對(duì)象,它代表一個(gè)存儲(chǔ) 在持久性存儲(chǔ)器中的實(shí)體的對(duì)象視圖,或是一個(gè)由現(xiàn)有企業(yè)應(yīng)用程 序?qū)崿F(xiàn)的實(shí)體。SessionBean 還可以再細(xì)分為 StatefulSessionBean 與 StatelessSessionBean,這兩種的SessionBean都可以將系統(tǒng)邏輯 放在method之中執(zhí)行,不同的是StatefulSessionBean可以記錄呼 叫者的狀態(tài),因此通常來(lái)說(shuō),一個(gè)使用者會(huì)有一個(gè)相對(duì)應(yīng)的 StatefulSessionBean 的實(shí)體。Sta

11、telessSessionBean 雖然也是邏 輯組件,但是他卻不負(fù)責(zé)記錄使用者狀態(tài),也就是說(shuō)當(dāng)使用者呼叫 StatelessSessionBean的時(shí)候,EJBContainer并不會(huì)找尋特定的 StatelessSessionBean的實(shí)體來(lái)執(zhí)行這個(gè)method0換言之,很可能 數(shù)個(gè)使用者在執(zhí)行某個(gè)StatelessSessionBean的methods時(shí),會(huì)是 同一個(gè)Bean的Instance在執(zhí)行。從內(nèi)存方面來(lái)看, StatefulSessionBean 與 StatelessSessionBean 比較, StatefulSessionBean會(huì)消耗J2EEServer較多的內(nèi)存,然

12、而 StatefulSessionBean的優(yōu)勢(shì)卻在于他可以維持使用者的狀態(tài)。9、Collection 和 Collections 的區(qū)別。Collection是集合類(lèi)的上級(jí)接口,繼承與他的接口主要有Set 和 List.Collections是針對(duì)集合類(lèi)的一個(gè)幫助類(lèi),他提供一系列靜態(tài)方 法實(shí)現(xiàn)對(duì)各種集合的搜索、排序、線(xiàn)程安全化等操作。10、&和&的區(qū)別。&是位運(yùn)算符,表示按位與運(yùn)算,&是邏輯運(yùn)算符,表示邏輯與 (and) o11、HashMap 和 Hashtable 的區(qū)別。HashMap是Hashtable的輕量級(jí)實(shí)現(xiàn)(非線(xiàn)程安全的實(shí)現(xiàn)),他們 都完成了 Map接口,主要區(qū)別在于Hash

13、Map允許空(null)鍵值(key), 由于非線(xiàn)程安全,效率上可能高于HashtableoHashMap允許將null作為一個(gè)entry的key或者value,而 Hashtable 不允許。HashMap 把 Hashtable 的 contains 方法去掉了 ,改成 containsvalue 和 containsKeyo 因?yàn)?contains 方法容易讓人弓I 起 誤解。Hashtable 繼承自 Dictionary 類(lèi),而 HashMap 是 Javal. 2 引進(jìn) 的Map interface的一個(gè)實(shí)現(xiàn)。最大的不同是,Hashtable的方法是Synchronize的,而 H

14、ashMap不是,在多個(gè)線(xiàn)程訪(fǎng)問(wèn)Hashtable時(shí),不需要自己為它的 方法實(shí)現(xiàn)同步,而HashMap就必須為之提供外同步。Hashtable和HashMap采用的hash/rehash算法都大概一樣,所 以性能不會(huì)有很大的差異。12 final, finally, finalize tKjK另I。final用于聲明屬性,方法和類(lèi),分別表示屬性不可變,方法不 可覆蓋,類(lèi)不可繼承。finally是異常處理語(yǔ)句結(jié)構(gòu)的一部分,表示總是執(zhí)行。finalize是Object類(lèi)的一個(gè)方法,在垃圾收集器執(zhí)行的時(shí)候會(huì) 調(diào)用被回收對(duì)象的此方法,可以覆蓋此方法提供垃圾收集時(shí)的其他 資源回收,例如關(guān)閉文件等。13

15、sleep ()和wait()有什么區(qū)別?sleep是線(xiàn)程類(lèi)(Thread)的方法,導(dǎo)致此線(xiàn)程暫停執(zhí)行指定時(shí)間, 給執(zhí)行機(jī)會(huì)給其他線(xiàn)程,但是監(jiān)控狀態(tài)依然保持,到時(shí)后會(huì)自動(dòng)恢 復(fù)。調(diào)用sleep不會(huì)釋放對(duì)象鎖。wait是Object類(lèi)的方法,對(duì)此對(duì)象調(diào)用wait方法導(dǎo)致木線(xiàn)程 放棄對(duì)象鎖,進(jìn)入等待此對(duì)象的等待鎖定池,只有針對(duì)此對(duì)象發(fā)出 notify方法(或not辻yAll)后木線(xiàn)程才進(jìn)入對(duì)象鎖定池準(zhǔn)備獲得對(duì) 象鎖進(jìn)入運(yùn)行狀態(tài)。14、Overload和Override的區(qū)別。Overloaded的方法是否可以 改變返回值的類(lèi)型?方法的重寫(xiě)Overriding和重載Overloading是Java多

16、態(tài)性的不 同表現(xiàn)。重寫(xiě)Overriding是父類(lèi)與子類(lèi)之間多態(tài)性的一種表現(xiàn),重 載Overloading是一個(gè)類(lèi)中多態(tài)性的一種表現(xiàn)。如果在子類(lèi)中定義 某方法與其父類(lèi)有相同的名稱(chēng)和參數(shù),我們說(shuō)該方法被重寫(xiě) (Overriding) 0子類(lèi)的對(duì)象使用這個(gè)方法時(shí),將調(diào)用子類(lèi)中的定義, 對(duì)它而言,父類(lèi)中的定義如同被屏蔽了。如果在一個(gè)類(lèi)中定義了 多個(gè)同名的方法,它們或有不同的參數(shù)個(gè)數(shù)或有不同的參數(shù)類(lèi)型, 則稱(chēng)為方法的重載(Overloading)。Overloaded的方法是可以改變 返回值的類(lèi)型。15、error和exception有什么區(qū)別?error表示恢復(fù)不是不可能但很困難的情況下的一種嚴(yán)重問(wèn)題

17、。 比如說(shuō)內(nèi)存溢出。不可能指望程序能處理這樣的情況。exception表示一種設(shè)計(jì)或?qū)崿F(xiàn)問(wèn)題。也就是說(shuō),它表示如果程 序運(yùn)行正常,從不會(huì)發(fā)生的情況。16、同步和異步有何異同,在什么情況下分別使用他們?舉例說(shuō) 明。如果數(shù)據(jù)將在線(xiàn)程間共享。例如正在寫(xiě)的數(shù)據(jù)以后可能被另一個(gè) 線(xiàn)程讀到,或者正在讀的數(shù)據(jù)可能己經(jīng)被另一個(gè)線(xiàn)程寫(xiě)過(guò)了,那么 這些數(shù)據(jù)就是共享數(shù)據(jù),必須進(jìn)行同步存取。當(dāng)應(yīng)用程序在對(duì)象上調(diào)用了一個(gè)需要花費(fèi)很長(zhǎng)時(shí)間來(lái)執(zhí)行的方法, 并且不希望讓程序等待方法的返回時(shí),就應(yīng)該使用異步編程,在很 多情況下采用異步途徑往往更有效率。17、abstractclass 和 interface 有什么區(qū)別?聲明方

18、法的存在而不去實(shí)現(xiàn)它的類(lèi)被叫做抽象類(lèi) (abstractclass),它用要?jiǎng)?chuàng)建一個(gè)體現(xiàn)某些基本行為的類(lèi),并為 該類(lèi)聲明方法,但不能在該類(lèi)中實(shí)現(xiàn)該類(lèi)的情況。不能創(chuàng)建 abstract類(lèi)的實(shí)例。然而可以創(chuàng)建一個(gè)變量,其類(lèi)型是一個(gè)抽象類(lèi), 并讓它指向具體子類(lèi)的一個(gè)實(shí)例。不能有抽象構(gòu)造函數(shù)或抽象靜態(tài) 方法。Abstract類(lèi)的子類(lèi)為它們父類(lèi)中的所有抽象方法提供實(shí)現(xiàn), 否則它們也是抽象類(lèi)為。取而代之,在子類(lèi)中實(shí)現(xiàn)該方法。知道其 行為的其它類(lèi)可以在類(lèi)中實(shí)現(xiàn)這些方法。接口 (interface)是抽象類(lèi)的變體。在接口中,所有方法都是抽 象的。多繼承性可通過(guò)實(shí)現(xiàn)這樣的接口而獲得。接口中的所有方法 都是抽象的

19、,沒(méi)有一個(gè)有程序體。接口只可以定義staticfinal成 員變量。接口的實(shí)現(xiàn)與子類(lèi)相似,除了該實(shí)現(xiàn)類(lèi)不能從接口定義中 繼承行為。當(dāng)類(lèi)實(shí)現(xiàn)特殊接口時(shí),它定義(即將程序體給予)所有這 種接口的方法。然后,它可以在實(shí)現(xiàn)了該接口的類(lèi)的.任何對(duì)象上調(diào) 用接口的方法。由于有抽象類(lèi),它允許使用接口名作為引用變量的 類(lèi)型。通常的動(dòng)態(tài)聯(lián)編將生效。引用可以轉(zhuǎn)換到接口類(lèi)型或從接口 類(lèi)型轉(zhuǎn)換,instanceof運(yùn)算符可以用來(lái)決定某對(duì)象的類(lèi)是否實(shí)現(xiàn)了 接口。18、heap和stack有什么區(qū)別。棧是一種線(xiàn)形集合,其添加和刪除元素的操作應(yīng)在同一段完成。 棧按照后進(jìn)先出的方式進(jìn)行處理。堆是棧的一個(gè)組成元素19、forw

20、ard 和 redirect 的區(qū)別forward是服務(wù)器請(qǐng)求資源,服務(wù)器直接訪(fǎng)問(wèn)目標(biāo)地址的URL, 把那個(gè)URL的響應(yīng)內(nèi)容讀取過(guò)來(lái),然后把這些內(nèi)容再發(fā)給瀏覽器, 瀏覽器根本不知道服務(wù)器發(fā)送的內(nèi)容是從哪兒來(lái)的,所以它的地址 欄中還是原來(lái)的地址。redirect就是服務(wù)端根據(jù)邏輯,發(fā)送一個(gè)狀態(tài)碼,告訴瀏覽器重 新去請(qǐng)求那個(gè)地址,一般來(lái)說(shuō)瀏覽器會(huì)用剛才請(qǐng)求的所有參數(shù)重新 請(qǐng)求,所以session, request參數(shù)都可以獲取。20、EJB 與 JAVABEAN 的區(qū)別?JavaBean是可復(fù)用的組件,對(duì)JavaBean并沒(méi)有嚴(yán)格的規(guī)范,理 論上講,任何一個(gè)Java類(lèi)都可以是一個(gè)Beano但通常情

21、況下,由 于JavaBean是被容器所創(chuàng)建(如Tomcat)的,所以JavaBean應(yīng)具有 一個(gè)無(wú)參的構(gòu)造器,另外,通常JavaBean還要實(shí)現(xiàn)Serializable 接口用于實(shí)現(xiàn)Bean的持久性。JavaBean實(shí)際上相當(dāng)于微軟COM模 型中的本地進(jìn)程內(nèi)COM組件,它是不能被跨進(jìn)程訪(fǎng)問(wèn)的。 EnterpriseJavaBean相當(dāng)丁 DCOM,即分布式組件。它是基J: Java 的遠(yuǎn)程方法調(diào)用(RMI)技術(shù)的,所以EJB可以被遠(yuǎn)程訪(fǎng)問(wèn)(跨進(jìn)程、 跨計(jì)算機(jī))。但EJB必須被布署在諸如Webspere WebLogic這樣的 容器中,EJB客戶(hù)從不直接訪(fǎng)問(wèn)真正的EJB組件,而是通過(guò)其容器 訪(fǎng)問(wèn)

22、。EJB容器是EJB組件的代理,EJB組件由容器所創(chuàng)建和管理。 客戶(hù)通過(guò)容器來(lái)訪(fǎng)問(wèn)真正的EJB組件。21、StaticNestedClass 和 InnerClass 的不同。StaticNestedClass是被聲明為靜態(tài)(static)的內(nèi)部類(lèi),它可以 不依賴(lài)于外部類(lèi)實(shí)例被實(shí)例化。而通常的內(nèi)部類(lèi)需要在外部類(lèi)實(shí)例 化后才能實(shí)例化。22、JSP中動(dòng)態(tài)INCLUDE與靜態(tài)INCLUDE的區(qū)別?動(dòng)態(tài)INCLUDE用jsp: include動(dòng)作實(shí)現(xiàn)它總是會(huì)檢查所含文件中 的變化,適合用于包含動(dòng)態(tài)頁(yè)而,并且可以帶參數(shù)。靜態(tài)INCLUDE用include偽碼實(shí)現(xiàn),定不會(huì)檢查所含文件的變化, 適用于包含靜

23、態(tài)頁(yè)面23什么時(shí)候用assertoassertion(斷言)在軟件開(kāi)發(fā)中是一種常用的調(diào)試方式,很多開(kāi) 發(fā)語(yǔ)言中都支持這種機(jī)制。在實(shí)現(xiàn)中,assertion就是在程序中的 一條語(yǔ)句,它對(duì)一個(gè)boolean表達(dá)式進(jìn)行檢查,一個(gè)正確程序必須 保證這個(gè)boolean表達(dá)式的值為true;如果該值為false,說(shuō)明程序 己經(jīng)處于不正確的狀態(tài)下,系統(tǒng)將給出警告或退出。一般來(lái)說(shuō), assertion用于保證程序最基本、關(guān)鍵的正確性。assertion檢查通 常在開(kāi)發(fā)和測(cè)試時(shí)開(kāi)啟。為了提高性能,在軟件發(fā)布后,assertion 檢查通常是關(guān)閉的。27、Strings=newString (,zxyz,z);創(chuàng)

24、建了 幾個(gè) StringObject?兩個(gè)29、Java 有沒(méi)有 goto?java中的保留字,現(xiàn)在沒(méi)有在java中使用。30、啟動(dòng)一個(gè)線(xiàn)程是用rim ()還是start ()?啟動(dòng)一個(gè)線(xiàn)程是調(diào)用start ()方法,使線(xiàn)程所代表的虛擬處理機(jī) 處于可運(yùn)行狀態(tài),這意味著它可以由JVM調(diào)度并執(zhí)行。這并不意味 著線(xiàn)程就會(huì)立即運(yùn)行。run()方法可以產(chǎn)生必須退岀的標(biāo)志來(lái)停止一 個(gè)線(xiàn)程。32、應(yīng)用服務(wù)器有那些?BEAWebLogicServer, IBWebSphereApplicationServer, 0racle9iApplicationServer, jBoss, Tomcat34、接口是否可繼

25、承接口?抽象類(lèi)是否可實(shí)現(xiàn)(implements)接口? 抽象類(lèi)是否可繼承實(shí)體類(lèi)(concreteclass) ?接口可以繼承接口。抽象類(lèi)可以實(shí)現(xiàn)(implements)接口,抽象類(lèi) 是否可繼承實(shí)體類(lèi),但前提是實(shí)體類(lèi)必須有明確的構(gòu)造函數(shù)。35、List, Set, Map 是否繼承自 Collection 接口?List, Set 是,Map 不是38數(shù)組有沒(méi)有l(wèi)ength()這個(gè)方法?String有沒(méi)有l(wèi)ength()這 個(gè)方法?數(shù)組沒(méi)有l(wèi)ength()這個(gè)方法,有l(wèi)ength的屬性。String有有 length ()這個(gè)方法。39、Set里的元素是不能重復(fù)的,那么用什么方法來(lái)區(qū)分重復(fù)與 否

26、呢?是用=還是equals ()?它們有何區(qū)別?Set里的元素是不能重復(fù)的,那么用iterator ()方法來(lái)區(qū)分重復(fù) 與否。equals ()是判讀兩個(gè)Set是否相等。equals ()和二二方法決定引用值是否指向同一對(duì)象equals ()在類(lèi) 中被覆蓋,為的是當(dāng)兩個(gè)分離的對(duì)象的內(nèi)容和類(lèi)型相配的話(huà),返回 真值。40 構(gòu)造器 Constructor 是否可被 override?構(gòu)造器Constructor不能被繼承,因此不能重寫(xiě)Overriding, 但可以被重載Overloadingo41、是否可以繼承String類(lèi)?String類(lèi)是final類(lèi)故不可以繼承。42、swtich是否能作用在b

27、yte上,是否能作用在long上,是 否能作用在String ?switch (exprl)中,exprl是一個(gè)整數(shù)表達(dá)式。因此傳遞給 switch和case語(yǔ)句的參數(shù)應(yīng)該是int、short char或者byte。 long, string都不能作用于swticho43 try里有一個(gè)return語(yǔ)句,那么緊跟在這個(gè)tty后的 finally里的code會(huì)不會(huì)被執(zhí)行,什么時(shí)候被執(zhí)行,在return前 還是后?會(huì)執(zhí)行,在return前執(zhí)行。44、編程題:用最有效率的方法算出2乘以8等於幾?2345、兩個(gè)對(duì)象值相同(x. equals(y)=true),但卻可有不同的 hashcode,這句話(huà)對(duì)

28、不對(duì)?不對(duì),有相同的hashcode。46、當(dāng)一個(gè)對(duì)象被當(dāng)作參數(shù)傳遞到一個(gè)方法后,此方法可改變這 個(gè)對(duì)象的屬性,并可返回變化后的結(jié)果,那么這里到底是值傳遞還 是引用傳遞?是值傳遞。Java編程語(yǔ)言只有值傳遞參數(shù)。當(dāng)一個(gè)對(duì)象實(shí)例作 為一個(gè)參數(shù)被傳遞到方法中時(shí),參數(shù)的值就是對(duì)該對(duì)象的引用。對(duì) 象的內(nèi)容可以在被調(diào)用的方法中改變,但對(duì)象的引用是永遠(yuǎn)不會(huì)改 變的。47、當(dāng)一個(gè)線(xiàn)程進(jìn)入一個(gè)對(duì)象的一個(gè)synchronized方法后,其 它線(xiàn)程是否可進(jìn)入此對(duì)象的其它方法?不能,一個(gè)對(duì)象的一個(gè)synchronized方法只能由一個(gè)線(xiàn)程訪(fǎng)問(wèn)。53、你所知道的集合類(lèi)都有哪些?主要方法?最常用的集合類(lèi)是List和Ma

29、po List的具體實(shí)現(xiàn)包括 ArrayList和Vector,它們是可變大小的列表,比較適合構(gòu)建、存 儲(chǔ)和操作任何類(lèi)型對(duì)象的元素列表。List適用于按數(shù)值索引訪(fǎng)問(wèn)元 素的情形。Map提供了一個(gè)更通用的元素存儲(chǔ)方法。Map集合類(lèi)用于存儲(chǔ)元 素對(duì)(稱(chēng)作鍵和值),其中每個(gè)鍵映射到一個(gè)值。55、ch吐型變量中能不能存貯一個(gè)中文漢字?為什么?能夠定義成為一個(gè)中文的,因?yàn)閖ava中以Unicode編碼,一個(gè) char占16個(gè)字節(jié),所以放一個(gè)中文是沒(méi)問(wèn)題的56、多線(xiàn)程有幾種實(shí)現(xiàn)方法,都是什么?同步有幾種實(shí)現(xiàn)方法,都 是什么?多線(xiàn)程有兩種實(shí)現(xiàn)方法,分別是繼承Thread類(lèi)與實(shí)現(xiàn)Runnable 接口同步的實(shí)

30、現(xiàn)方而有兩種,分別是synchronized, wait與notify57、JSP的內(nèi)置對(duì)象及方法。request表不HttpServletRequest對(duì)象。它包含了有關(guān)瀏覽器 請(qǐng)求的信息,并且提供了兒個(gè)用于獲取cookie, header,和session 數(shù)據(jù)的有用的方法。response表示HttpServletResponse對(duì)象,并提供了兒個(gè)用于 設(shè)置送回瀏覽器的響應(yīng)的方法(如cookies,頭信息等)out對(duì)象是javax. jsp. JspWriter的一個(gè)實(shí)例,并提供了兒個(gè)方 法使你能用于向?yàn)g覽器回送輸出結(jié)果。pageContext 表不一個(gè) javax. servlet.

31、jsp. PageContext 對(duì)象。 它是用于方便存取各種范圍的名字空間、servlet相關(guān)的對(duì)象的API, 并且包裝了通用的servlet相關(guān)功能的方法。session 表不一個(gè)請(qǐng)求tl勺 javax. servlet, http. HttpSession 對(duì) 象。Session可以存貯用戶(hù)的狀態(tài)信息applicaton 表不一個(gè) javax. servle. ServletCo nt ext 對(duì)象。這 有助于查找有關(guān)servlet引擎和servlet環(huán)境的信息config 表不一個(gè) javax. servlet. ServletConfig 對(duì)象。該對(duì)象 用于存取servlet實(shí)例的初

32、始化參數(shù)。page表示從該頁(yè)面產(chǎn)生的一個(gè)servlet實(shí)例58、線(xiàn)程的基木概念、線(xiàn)程的基木狀態(tài)以及狀態(tài)之間的關(guān)系線(xiàn)程指在程序執(zhí)行過(guò)程中,能夠執(zhí)行程序代碼的一個(gè)執(zhí)行單位, 每個(gè)程序至少都有一個(gè)線(xiàn)程,也就是程序本身。Java中的線(xiàn)程有四種狀態(tài)分別是:運(yùn)行、就緒、掛起、結(jié)束。60什么情況下調(diào)用doGet ()和doPost ()?Jsp頁(yè)而中的form標(biāo)簽里的method屬性為get時(shí)調(diào)用doGet (), 為 post 時(shí)調(diào)用 doPost () o61、servlet的生命周期62如何現(xiàn)實(shí)servlet的單線(xiàn)程模式%page 二is th:reads8fe=f8.se63、頁(yè)而間對(duì)象傳遞的方法r

33、equest, session, application, cookie 等64、JSP和Servlet有哪些相同點(diǎn)和不同點(diǎn),他們之間的聯(lián)系是 什么?JSP是Servlet技術(shù)的擴(kuò)展,本質(zhì)上是Servlet的簡(jiǎn)易方式,更 強(qiáng)調(diào)應(yīng)用的外表表達(dá)。JSP編譯后是類(lèi)servlet。Servlet和JSP 最主要的不同點(diǎn)在于,Servlet的應(yīng)用邏輯是在Java文件中,并且 完全從表示層中的HTML里分離開(kāi)來(lái)。而JSP的情況是Java和HTML 可以組合成一個(gè)擴(kuò)展名為.jsp的文件。JSP側(cè)重于視圖,Servlet 主要用于控制邏輯。65、四種會(huì)話(huà)跟蹤技術(shù)會(huì)話(huà)作用域ServletsJSP頁(yè)而描述page

34、否是代表與一個(gè)頁(yè)面相關(guān)的對(duì)象和屬性。一個(gè)頁(yè)而由一個(gè) 編譯好的Javaservlet類(lèi)(可以帶有任何的include指令,但是沒(méi)有 include動(dòng)作)表示。這既包括servlet又包扌舌被編譯成servlet的 JSP頁(yè)面request是是代表與Web客戶(hù)機(jī)發(fā)出的一個(gè)請(qǐng)求相關(guān)的對(duì)象和屬 性。一個(gè)請(qǐng)求可能跨越多個(gè)頁(yè)而,涉及多個(gè)Web組件(由于forward 指令和include動(dòng)作的關(guān)系)session是是代表與用丁某個(gè)Web客戶(hù)機(jī)的一個(gè)用戶(hù)體驗(yàn)相關(guān)的 對(duì)象和屬性。一個(gè)Web會(huì)話(huà)可以也經(jīng)常會(huì)跨越多個(gè)客戶(hù)機(jī)請(qǐng)求application是是代表與整個(gè)Web應(yīng)用程序相關(guān)的對(duì)象和屬性。 這實(shí)質(zhì)上是跨越整個(gè)

35、Web應(yīng)用程序,包括多個(gè)頁(yè)而、請(qǐng)求和會(huì)話(huà)的 一個(gè)全局作用域66、Request對(duì)象的主要方法:setAttribute (Stringname, Object): 設(shè)置名字為 name 的 request的參數(shù)值getAttribute (Stringname):返回 rh name 指定的屬性值getAttributeNamesO :返回request對(duì)象所有屬性的名字集合, 結(jié)果是一個(gè)枚舉的實(shí)例getCookies ():返回客戶(hù)端的所有Cookie對(duì)象,結(jié)果是一個(gè) Cookie數(shù)組getCharacterEncoding ():返回請(qǐng)求中的字符編碼方式 getContentLength():返回請(qǐng)求的Body的長(zhǎng)度 getHeader (Stringname):獲得HTTP協(xié)議定義的文件頭信息 getHeaders (Stringname):返回指定名字的 requestHeader 的所 有值,結(jié)果是一個(gè)枚舉的實(shí)例getHeaderXames():返回所以 requestHeader 的名字,結(jié)果是一 個(gè)枚舉的實(shí)例getlnputStreamO:返回請(qǐng)求的輸入流,用于獲得請(qǐng)求中的數(shù)據(jù) getMethodO :獲得客戶(hù)端向服務(wù)器端傳送數(shù)據(jù)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論