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

下載本文檔

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

文檔簡介

1、數(shù)據(jù)庫面試題及答案.抽象:抽象就是忽略一個(gè)主題中與當(dāng)前目標(biāo)無關(guān)的那些方面,以便更 充分地注意與當(dāng)前目標(biāo)有關(guān)的方面。抽象并不打算了解全部問題, 而只是選擇其中的一局部,暫時(shí)不用局部細(xì)節(jié)。抽象包括兩個(gè)方 面,一是過程抽象,二是數(shù)據(jù)抽象。.繼承:繼承是一種聯(lián)結(jié)類的層次模型,并且允許和鼓勵(lì)類的重用,它 提供了一種明確表述共性的方法。對象的一個(gè)新類可以從現(xiàn)有的類 中派生,這個(gè)過程稱為類繼承。新類繼承了原始類的特性,新類稱 為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生 類可以從它的基類那里繼承方法和實(shí)例變量,并且類可以修改或增 加新的方法使之更適合特殊的需要。.封裝:封裝是把過程和數(shù)據(jù)包

2、圍起來,對數(shù)據(jù)的訪問只能通過已定義 的界面。面向?qū)ο笥?jì)算始于這個(gè)根本概念,即現(xiàn)實(shí)世界可以被描繪 成一系列完全自治、封裝的對象,這些對象通過一個(gè)受保護(hù)的接口 訪問其他對象。.多態(tài)性:多態(tài)性是指允許不同類的對象對同一消息作出響應(yīng)。多態(tài)性包 括參數(shù)化多態(tài)性和包含多態(tài)性。多態(tài)性語言具有靈活、抽象、行為 共享、代碼共享的優(yōu)勢,很好的解決了應(yīng)用程序函數(shù)同名問題。根本數(shù)據(jù)類型包括 byte、int、char long、float、double boolean 和 short0java. lang. String類是final類型的,因此不可以繼承這個(gè) 類、不能修改這個(gè)類。為了提高效率節(jié)省空間,我們應(yīng)該用 S

3、tringBuffer 類Java提供兩種不同的類型:引用類型和原始類型(或內(nèi)置類 型)。Int是java的原始數(shù)據(jù)類型,Integer是java為int提供的 封裝類。Java為每個(gè)原始類型提供了封裝類。原始類型封裝類booleanBooleancharCharacterbyteByteshortShortintlntegerlongLongfloatFloatdoubleDouble引用類型和原始類型的行為完全不同,并且它們具有不同的語 義。引用類型和原始類型具有不同的特征和用法,它們包括:大小 和速度問題,這種類型以哪種類型的數(shù)據(jù)構(gòu)造存儲,當(dāng)引用類型和 原始類型用作某個(gè)類的實(shí)例數(shù)據(jù)時(shí)所指

4、定的缺省值。對象引用實(shí)例 變量的缺省值為null,而原始類型實(shí)例變量的缺省值與它們的類型 有關(guān)。JAVA平臺提供了兩個(gè)類:String和StringBuffer,它們可以 儲存和操作字符串,即包含多個(gè)字符的字符數(shù)據(jù)。這個(gè)String類提 供了數(shù)值不可改變的字符串。而這個(gè)StringBuffer類提供的字符串 進(jìn)展修改。當(dāng)你知道字符數(shù)據(jù)要改變的時(shí)候你就可以使用StringBuffero典型地,你可以使用StringBuffers來動(dòng)態(tài)構(gòu)造字 符數(shù)據(jù)。異常表示程序運(yùn)行過程中可能出現(xiàn)的非正常狀態(tài),運(yùn)行時(shí)異常 表示虛擬機(jī)的通常操作中可能遇到的異常,是一種常見運(yùn)行錯(cuò)誤。 java編譯器要求方法必須聲明拋

5、出可能發(fā)生的非運(yùn)行時(shí)異常,但是 并不要求必須聲明拋出未被捕獲的運(yùn)行時(shí)異常。Servlet被效勞器實(shí)例化后,容器運(yùn)行其init方法,請求到達(dá) 時(shí)運(yùn)行其service方法,service方法自動(dòng)派遣運(yùn)行與請求對應(yīng)的 doXXX方法(doGet, doPost)等,當(dāng)效勞器決定將實(shí)例銷毀的時(shí)候調(diào) 用其destroy方法。與cgi的區(qū)別在于servlet處于效勞器進(jìn)程中,它通過多線程 方式運(yùn)行其service方法,一個(gè)實(shí)例可以效勞于多個(gè)請求,并且其 實(shí)例一般不會銷毀,而CGI對每個(gè)請求都產(chǎn)生新的進(jìn)程,效勞完成 后就銷毀,所以效率上低于servlet。ArrayList和Vector都是使用數(shù)組方式存儲

6、數(shù)據(jù),此數(shù)組元素 數(shù)大于實(shí)際存儲的數(shù)據(jù)以便增加和插入元素,它們都允許直接按序 號索引元素,但是插入元素要涉及數(shù)組元素移動(dòng)等內(nèi)存操作,所以 索引數(shù)據(jù)快而插入數(shù)據(jù)慢,Vector由于使用了 synchronized方法 (線程平安),通常性能上較ArrayList差,而LinkedList使用雙向 鏈表實(shí)現(xiàn)存儲,按序號索引數(shù)據(jù)需要進(jìn)展前向或后向遍歷,但是插 入數(shù)據(jù)時(shí)只需要記錄本項(xiàng)的前后項(xiàng)即可,所以插入速度較快。EJB 包括 Session Bean Entity Bean Message DrivenBean,基于JNDI、RMK JAT等技術(shù)實(shí)現(xiàn)。SessionBean在J2EE應(yīng)用程序中被用來

7、完成一些效勞器端的業(yè) 務(wù)操作,例如訪問數(shù)據(jù)庫、調(diào)用其他EJB組件。EntityBean被用來 代表應(yīng)用系統(tǒng)中用到的數(shù)據(jù)。對于客戶機(jī),SessionBean是一種非持久性對象,它實(shí)現(xiàn)某些 在效勞器上運(yùn)行的業(yè)務(wù)邏輯。對于客戶機(jī),EntityBean是一種持久性對象,它代表一個(gè)存儲 在持久性存儲器中的實(shí)體的對象視圖,或是一個(gè)由現(xiàn)有企業(yè)應(yīng)用程 序?qū)崿F(xiàn)的實(shí)體。Session Bean 還可以再細(xì)分為 Stateful Session Bean 與 Stateless Session Bean ,這兩種的 Session Bean 都可以將系統(tǒng) 邏輯放在method之中執(zhí)行,不同的是Stateful Se

8、ssion Bean可 以記錄呼叫者的狀態(tài),因此通常來說,一個(gè)使用者會有一個(gè)相對應(yīng) 的 Stateful Session Bean 的實(shí)體。Stateless Session Bean 雖 然也是邏輯組件,但是他卻不負(fù)責(zé)記錄使用者狀態(tài),也就是說當(dāng)使 用者呼叫 Stateless Session Bean 的時(shí)候,EJB Container 并不 會找尋特定的Stateless Session Bean的實(shí)體來執(zhí)行這個(gè) methodo換言之,很可能數(shù)個(gè)使用者在執(zhí)行某個(gè)Stateless Session Bean 的 methods 時(shí),會是同一i個(gè) Bean 的 Instance 在 執(zhí)行。從內(nèi)

9、存方面來看,Stateful Session Bean與Stateless Session Bean 比較, Stateful Session Bean 會消耗 J2EE Server較多的內(nèi)存,然而Stateful Session Bean的優(yōu)勢卻在于 他可以維持使用者的狀態(tài)。Collection是集合類的上級接口,繼承與他的接口主要有Set和 List.Collections是針對集合類的一個(gè)幫助類,他提供一系列靜態(tài) 方法實(shí)現(xiàn)對各種集合的搜索、排序、線程平安化等操作。&是位運(yùn)算符,表示按位與運(yùn)算,&是邏輯運(yùn)算符,表示邏輯與 (and)o每種編程語言中都有集合,最初的Java版本包含幾種集合

10、類: Vector、Stack、HashTable和Array。隨著集合的廣泛使用, Javal.2提出了囊括所有集合接口、實(shí)現(xiàn)和算法的集合框架。在保 證線程平安的情況下使用泛型和并發(fā)集合類,Java已經(jīng)經(jīng)歷了很 久。它還包括在Java并發(fā)包中,阻塞接口以及它們的實(shí)現(xiàn)。集合框 架的局部優(yōu)點(diǎn)如下:(1)使用核心集合類降低開發(fā)本錢,而非實(shí)現(xiàn)我們自己的集合 類。(2)隨著使用經(jīng)過嚴(yán)格測試的集合框架類,代碼質(zhì)量會得到提 高。(3)通過使用JDK附帶的集合類,可以降低代碼維護(hù)本錢。(4)復(fù)用性和可操作性。Javal. 5引入了泛型,所有的集合接口和實(shí)現(xiàn)都大量地使用 它。泛型允許我們?yōu)榧咸峁┮粋€(gè)可以容納

11、的對象類型,因此,如 果你添加其它類型的任何元素,它會在編譯時(shí)報(bào)錯(cuò)。這防止了在運(yùn) 行時(shí)出現(xiàn)ClassCastException,因?yàn)槟銓诰幾g時(shí)得到報(bào)錯(cuò)信 息。泛型也使得代碼整潔,我們不需要使用顯式轉(zhuǎn)換和instanceOf 操作符。它也給運(yùn)行時(shí)帶來好處,因?yàn)椴粫a(chǎn)生類型檢查的字節(jié)碼 指令。Collection為集合層級的根接口。一個(gè)集合代表一組對象,這 些對象即為它的元素。Java平臺不提供這個(gè)接口任何直接的實(shí)現(xiàn)。Set是一個(gè)不能包含重復(fù)元素的集合。這個(gè)接口對數(shù)學(xué)集合抽象進(jìn)展建模,被用來代表集合,就如一副牌。List是一個(gè)有序集合,可以包含重復(fù)元素。你可以通過它的索 引來訪問任何元素。Li

12、st更像長度動(dòng)態(tài)變換的數(shù)組。Map是一個(gè)將key映射到value的對象.一個(gè)Map不能包含重復(fù) 的key:每個(gè)key最多只能映射一個(gè)value。一些其它的接口有 Queue、Dequeue SortedSet SortedMap 和 ListlteratoroCollection接口指定一組對象,對象即為它的元素。如何維護(hù) 這些元素由Collection的詳細(xì)實(shí)現(xiàn)決定。例如,一些如List的 Collection實(shí)現(xiàn)允許重復(fù)的元素,而其它的如Set就不允許。很多 Collection實(shí)現(xiàn)有一個(gè)公有的clone方法。然而,把它放到集合的 所有實(shí)現(xiàn)中也是沒有意義的。這是因?yàn)镃ollection是一

13、個(gè)抽象表 現(xiàn)。重要的是實(shí)現(xiàn)。當(dāng)與詳細(xì)實(shí)現(xiàn)打交道的時(shí)候,克隆或序列化的語義和含義才發(fā) 揮作用。所以,詳細(xì)實(shí)現(xiàn)應(yīng)該決定如何對它進(jìn)展克隆或序列化,或 它是否可以被克隆或序列化。在所有的實(shí)現(xiàn)中授權(quán)克隆和序列化,最終導(dǎo)致更少的靈活性和 更多的限制。特定的實(shí)現(xiàn)應(yīng)該決定它是否可以被克隆和序列化。盡管Map接口和它的實(shí)現(xiàn)也是集合框架的一局部,但Map不是 集合,集合也不是Map。因此,Map繼承Collection毫無意義,反 之亦然。如果Map繼承Collection接口,那么元素去哪兒?Map包含 key-value對,它提供抽取key或value列表集合的方法,但是它 不適合“一組對象”標(biāo)準(zhǔn)。Itera

14、tor接口提供遍歷任何Collection的接口。我們可以從 一個(gè)Collection中使用迭代器方法來獲取迭代器實(shí)例。迭代器取代 了 Java集合框架中的Enumerationo迭代器允許調(diào)用者在迭代過程 中移除元素。Enumeration的速度是Iterator的兩倍,也使用更少的內(nèi)存。 Enumeration是非常根底的,也滿足了根底的需要。但是,與 Enumeration相比,Iterator更加平安,因?yàn)楫?dāng)一個(gè)集合正在被遍 歷的時(shí)候,它會阻止其它線程去修改集合。迭代器取代了 Java集合框架中的Enumeration。迭代器允許調(diào) 用者從集合中移除元素,而Enumeration不能做

15、到。為了使它的功 能更加清晰,迭代器方法名已經(jīng)經(jīng)過改善。語義不明,的是,Iterator的協(xié)議不能確保迭代的次序。然而 要注意,Listiterator沒有提供一個(gè)add操作,它要確保迭代的順 序。它可以在當(dāng)前Iterator的頂層實(shí)現(xiàn),但是它用得很少,如果將 它加到接口中,每個(gè)繼承都要去實(shí)現(xiàn)它,這沒有意義。(1)我們可以使用Iterator來遍歷Set和List集合,而 Listiterator 只能遍歷 List。(2) Iterator只可以向前遍歷,而Listiterator可以雙向遍 歷。(3)Listiterator從Iterator接口繼承,然后添加了一些額外 的功能,比方添加一個(gè)元素、替換一個(gè)元素、獲取前面或后面元素 的索引位置。11.遍歷一個(gè)List有哪些不同的方式?List strList = new ArrayListO (); 使用 foreach 循環(huán)for (String ob

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論