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

下載本文檔

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

文檔簡(jiǎn)介

1、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è)平臺(tái)獨(dú)立的、可移植的、多用戶的、平安的和基于標(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ù):1) Servlet Servlet是Java平臺(tái)上的CGI技術(shù)。Servlet在效勞器端運(yùn)行,動(dòng)態(tài)地生成Web頁(yè)面。與傳統(tǒng)的CGI和許多其它類(lèi)似CGI的技術(shù)相比,Java Servlet具有更高的效率并更容易使用。對(duì)于Servlet,重復(fù)

2、的請(qǐng)求不會(huì)導(dǎo)致同一程序的屢次轉(zhuǎn)載,它是依靠線程的方式來(lái)支持并發(fā)訪問(wèn)的。 2)JSP JSP(Java Server Page)是一種實(shí)現(xiàn)普通靜態(tài)HTML和動(dòng)態(tài)頁(yè)面輸出混合編碼的技術(shù)。從這一點(diǎn)來(lái)看,非常類(lèi)似Microsoft ASP、PHP等技術(shù)。借助形式上的內(nèi)容和外觀表現(xiàn)的別離,Web頁(yè)面制作的任務(wù)可以比較方便地劃分給頁(yè)面設(shè)計(jì)人員和程序員,并方便地通過(guò)JSP來(lái)合成。在運(yùn)行時(shí)態(tài),JSP將會(huì)被首先轉(zhuǎn)換成Servlet,并以Servlet的形態(tài)編譯運(yùn)行,因此它的效率和功能與Servlet相比沒(méi)有差異,一樣具有很高的效率。 3) EJB EJB定義了一組可重用的組件:Enterprise Beans。

3、開(kāi)發(fā)人員可以利用這些組件,像搭積木一樣建立分布式應(yīng)用。 4)JDBCJDBC(Java Database Connectivity,Java數(shù)據(jù)庫(kù)連接)API是一個(gè)標(biāo)準(zhǔn)SQL(Structured Query Language,結(jié)構(gòu)化查詢語(yǔ)言)數(shù)據(jù)庫(kù)訪問(wèn)接口,它使數(shù)據(jù)庫(kù)開(kāi)發(fā)人員能夠用標(biāo)準(zhǔn)Java API編寫(xiě)數(shù)據(jù)庫(kù)應(yīng)用程序。JDBC API主要用來(lái)連接數(shù)據(jù)庫(kù)和直接調(diào)用SQL命令執(zhí)行各種SQL語(yǔ)句。利用JDBC API可以執(zhí)行一般的SQL語(yǔ)句、動(dòng)態(tài)SQL語(yǔ)句及帶IN和OUT參數(shù)的存儲(chǔ)過(guò)程。Java中的JDBC相當(dāng)于Microsoft平臺(tái)中的ODBC(Open Database Connectivi

4、ty)。2.測(cè)試生命周期、測(cè)試過(guò)程分為幾個(gè)階段,以及各階段的含義?解答:軟件測(cè)試生命周期一般包括6個(gè)階段:1方案 2分析,3設(shè)計(jì),4構(gòu)建,5測(cè)試周期,6最后測(cè)試和實(shí)施,1 方案:產(chǎn)品定義階段2). 分析:外部文檔階段3). 設(shè)計(jì):文檔架構(gòu)階段4). 構(gòu)建:單元測(cè)試階段5). 測(cè)試周期:錯(cuò)誤修正,重復(fù)系統(tǒng)測(cè)試階段6). 最后的測(cè)試和實(shí)施:代碼凍結(jié)階段3.您做系統(tǒng)設(shè)計(jì)用何種工具?解答:Visio, rational rose,power designer等 4. 什么是Web容器?解答:容器就是一種效勞程序,在效勞器一個(gè)端口就有一個(gè)提供相應(yīng)效勞的程序,而這個(gè)程序就是處理從客戶端發(fā)出的請(qǐng)求,如JAV

5、A中的Tomcat容器,ASP的IIS或PWS都是這樣的容器。5. 運(yùn)行時(shí)異常與一般異常有何異同?解答:異常表示程序運(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. Hibernate中:不看數(shù)據(jù)庫(kù),不看XML文件,不看查詢語(yǔ)句,怎么樣能知道表結(jié)構(gòu)?解答:可以看與XML文件對(duì)應(yīng)的域模型。7.目前幾種主流數(shù)據(jù)庫(kù)軟件的應(yīng)用特點(diǎn)、適用范圍各是什么?解答:國(guó)際國(guó)內(nèi)的主導(dǎo)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)有SQL Server、ORACLE、SYBASE、IN

6、FORMIX和 DB2。本文從性能,可伸縮性和并行性,平安性,操作簡(jiǎn)便,使用風(fēng)險(xiǎn),開(kāi)放性,易維護(hù)性和價(jià)格,數(shù)據(jù)庫(kù)二次開(kāi)發(fā)方面比較了SQL Server,Oracle、SYBASE、DB2、INFORMIX 數(shù)據(jù)庫(kù):1性能SQL Server:老版本多用戶時(shí)性能不佳,新版本的性能有了明顯的改善,各項(xiàng)處理能力都有了明顯的提高。保持了多項(xiàng)TPC-CTPC-C值被廣泛用于衡量C/S環(huán)境下,由效勞器和客戶端構(gòu)筑的整體系統(tǒng)的性能,它由事物處理性能委員會(huì)TPC,Transaction Processing Corp制定,TPC為非贏利性國(guó)際組織。紀(jì)錄。Oracle :性能最高, 保持Windows NT下的

7、TPC-C的世界記錄。 SYBASE :性能較高,支持Sun、IBM、HP、Compaq和Veritas的集群設(shè)備的特性,實(shí)現(xiàn)高可用性。適應(yīng)于平安性要求極高的系統(tǒng)。 DB2 :適用于數(shù)據(jù)倉(cāng)庫(kù)和在線事物處理,性能較高。 客戶端支持及應(yīng)用模式。 INFORMIX :性能較高,支持集群,實(shí)現(xiàn)高可用性。適應(yīng)于平安性要求極高的系統(tǒng),尤其是銀行,證券系統(tǒng)的應(yīng)用。 2可伸縮性,并行性 SQL Server :以前版本SQL Server并行實(shí)施和共存模型并不成熟。很難處理大量的用戶數(shù)和數(shù)據(jù)卷。伸縮性有限。新版本性能有了較大的改善,在Microsoft Advanced Servers上有突出的表現(xiàn),超過(guò)了他

8、的主要競(jìng)爭(zhēng)對(duì)手。Oracle :平行效勞器通過(guò)使一組結(jié)點(diǎn)共享同一簇中的工作來(lái)擴(kuò)展Window NT的能力,提供高可用性和高伸縮性的簇的解決方案。如果Windows NT不能滿足需要, 用戶可以把數(shù)據(jù)庫(kù)移到UNIX中,具有很好的伸縮性。 SYBASE :新版本具有較好的并行性,速度快,對(duì)巨量數(shù)據(jù)無(wú)明顯影響,但是技術(shù)實(shí)現(xiàn)復(fù)雜,需要程序支持,伸縮性有限。 DB2 :DB2具有很好的并行性。DB2把數(shù)據(jù)庫(kù)管理擴(kuò)充到了并行的、多節(jié)點(diǎn)的環(huán)境。數(shù)據(jù)庫(kù)分區(qū)是數(shù)據(jù)庫(kù)的一局部,包含自己的數(shù)據(jù)、索引、配置文件、和事務(wù)日志。數(shù)據(jù)庫(kù)分區(qū)有時(shí)被稱(chēng)為節(jié)點(diǎn)或數(shù)據(jù)庫(kù)節(jié)點(diǎn),伸縮性有限。 INFORMIX :采用單進(jìn)程多線程的技術(shù)

9、,具有較好的并行性。但是僅運(yùn)行于UNIX平臺(tái),伸縮性有限。 3平安性 SQL server :Microsoft Advanced Server 獲得最高平安認(rèn)證,效勞器平臺(tái)的穩(wěn)定性是數(shù)據(jù)庫(kù)的穩(wěn)定性的根底,新版本的SQL的平安性有了極大的提高。 Oracle:獲得最高認(rèn)證級(jí)別的ISO標(biāo)準(zhǔn)認(rèn)證。 SYBASE :通過(guò)Sun公司J2EE認(rèn)證測(cè)試,獲得最高認(rèn)證級(jí)別的ISO標(biāo)準(zhǔn)認(rèn)證。 DB2 :獲得最高認(rèn)證級(jí)別的ISO標(biāo)準(zhǔn)認(rèn)證。 INFORMIX :獲得最高認(rèn)證級(jí)別的ISO標(biāo)準(zhǔn)認(rèn)證。 4操作簡(jiǎn)便 SQL Server :操作簡(jiǎn)單,采用圖形界面。管理也很方便,而且編程接口特別友好(它的SQL-DMO讓編

10、程變得非常方便!) ,從易維護(hù)性和價(jià)格上SQL Server明顯占有優(yōu)勢(shì)。 Oracle :較復(fù)雜, 同時(shí)提供GUI和命令行,在Windows NT和Unix, Linux 下操作相同。對(duì)數(shù)據(jù)庫(kù)管理人員要求較高。 SYBASE :復(fù)雜,使用命令行操作,對(duì)數(shù)據(jù)庫(kù)管理人員要求較高。 DB2 :操作簡(jiǎn)單,同時(shí)提供GUI和命令行,在Windows NT和Unix下操作相同。 INFORMIX :使用和管理復(fù)雜,命令行操作。對(duì)數(shù)據(jù)庫(kù)管理人員要求較高。 5使用風(fēng)險(xiǎn) SQL Server :完全重寫(xiě)的代碼,性能和兼容性有了較大的提高,與Oracle,DB2的性能差距明顯減小。該產(chǎn)品的出臺(tái)經(jīng)歷了長(zhǎng)期的測(cè)試,為

11、產(chǎn)品的平安和穩(wěn)定進(jìn)行了全面的檢測(cè),平安穩(wěn)定性有了明顯的提高。 Oracle :長(zhǎng)時(shí)間的開(kāi)發(fā)經(jīng)驗(yàn),完全向下兼容,可以平安的進(jìn)行數(shù)據(jù)庫(kù)的升級(jí),在企業(yè),政府中得到廣泛的應(yīng)用。并且如果在WINNT上無(wú)法滿足數(shù)據(jù)的要求,可以平安的把數(shù)據(jù)轉(zhuǎn)移到UNIX上來(lái)。SYBASE :開(kāi)發(fā)時(shí)間較長(zhǎng),升級(jí)較復(fù)雜,穩(wěn)定性較好,數(shù)據(jù)平安有保障。風(fēng)險(xiǎn)小。在平安要求極高的銀行,證券行業(yè)中得到了廣泛的應(yīng)用。 DB2 :在巨型企業(yè)得到廣泛的應(yīng)用,向下兼容性好。風(fēng)險(xiǎn)小。 INFORMIX :開(kāi)發(fā)時(shí)間較長(zhǎng),升級(jí)較復(fù)雜,穩(wěn)定性較好,數(shù)據(jù)平安有保障。風(fēng)險(xiǎn)小。在平安要求極高的銀行,證券行業(yè)中得到了廣泛的應(yīng)用。 6開(kāi)放性 SQL Server

12、:只能在Windows 上運(yùn)行,C/S結(jié)構(gòu),只支持Windows客戶,可以用ADO,DAO,OLEDB,ODBC連接。Windows9X系列產(chǎn)品是偏重于桌面應(yīng)用,NT server適合各種大中小型企業(yè)。 操作系統(tǒng)的穩(wěn)定對(duì)數(shù)據(jù)庫(kù)是十分重要的。Windows平臺(tái)的可靠性,平安性經(jīng)過(guò)了最高級(jí)別的C2認(rèn)證的。在處理大數(shù)據(jù)量的關(guān)鍵業(yè)務(wù)時(shí)提供了較好的性能。 Oracle :能在所有主流平臺(tái)上運(yùn)行包括 Windows。完全支持所有的工業(yè)標(biāo)準(zhǔn)。采用完全開(kāi)放策略。多層次網(wǎng)絡(luò)計(jì)算,支持多種工業(yè)標(biāo)準(zhǔn),可以用ODBC,JDBC,OCI等網(wǎng)絡(luò)客戶連接??梢允箍蛻暨x擇最適合的解決方案。對(duì)開(kāi)發(fā)商全力支持。 SYBASE :

13、能在所有主流平臺(tái)上運(yùn)行,在銀行業(yè)中得到了廣泛的應(yīng)用。 DB2 :有較好的開(kāi)放性,最適于海量數(shù)據(jù)。跨平臺(tái),多層結(jié)構(gòu),支持ODBC,JDBC等客戶。在大型的國(guó)際企業(yè)中得到最為廣泛的應(yīng)用,在全球的500家最大的企業(yè)中,大局部采用DB2數(shù)據(jù)庫(kù)效勞器。 IINFORMIX :僅運(yùn)行在UNIX平臺(tái),包括SUNOS、HPUX、 ALFAOSF/1。在銀行中得到廣泛的應(yīng)用。 7易維護(hù)性和價(jià)格 SQL Server :從易維護(hù)性和價(jià)格上SQL Server明顯占有優(yōu)勢(shì)?;贛icrosoft的一貫風(fēng)格,SQL Server的圖形管理界面帶來(lái)了明顯的易用性, 微軟的數(shù)據(jù)庫(kù)管理員培訓(xùn)進(jìn)行的比較充分,可以輕松的找到很

14、好的數(shù)據(jù)庫(kù)管理員,數(shù)據(jù)庫(kù)管理費(fèi)用比較低,SQL Server的價(jià)格也是很低的,但是在License的購(gòu)置上會(huì)抬高價(jià)格。總體來(lái)說(shuō)SQL Server的價(jià)格在商用數(shù)據(jù)庫(kù)中是最低的。 Oracle :從易維護(hù)性和價(jià)格上來(lái)說(shuō)Oracle的價(jià)格是比較高的,管理比較復(fù)雜,由于Oracle的應(yīng)用很廣泛,經(jīng)驗(yàn)豐富的Oracle數(shù)據(jù)庫(kù)管理員可以比較容易的找到,從而實(shí)現(xiàn)Oracle的良好管理。因此Oracle的性能價(jià)格比在商用數(shù)據(jù)庫(kù)中是最好的。 SYBASE :SYBASE的價(jià)格是比較低的,但是SYBASE的在企業(yè)和政府中的應(yīng)用較少,很難找到經(jīng)驗(yàn)豐富的管理員,運(yùn)行管理費(fèi)用較高。DB2 :價(jià)格高, 管理員少,在中國(guó)

15、的應(yīng)用較少,運(yùn)行管理費(fèi)用都很高,適用于大型企業(yè)的數(shù)據(jù)倉(cāng)庫(kù)應(yīng)用。 INFORMIX :價(jià)格在這些系統(tǒng)中居于中間,與SYBASE一樣,在企業(yè)和政府中應(yīng)用較少,僅在銀行中得到了廣泛的應(yīng)用。經(jīng)驗(yàn)豐富的管理人員較少,運(yùn)行管理費(fèi)用高。 8)數(shù)據(jù)庫(kù)二次開(kāi)發(fā) SQL Server :數(shù)據(jù)庫(kù)的二次開(kāi)發(fā)工具很多,包括Visual C+, Visual Basic等開(kāi)發(fā)工具,可以實(shí)現(xiàn)很好的Windows應(yīng)用,開(kāi)發(fā)容易。 Oracle :數(shù)據(jù)庫(kù)的二次開(kāi)發(fā)工具很多,涵蓋了數(shù)據(jù)庫(kù)開(kāi)發(fā)的各個(gè)階段,開(kāi)發(fā)容易。 SYBASE :開(kāi)發(fā)工具較少,經(jīng)驗(yàn)豐富的人員很少。 DB2 :在國(guó)外巨型企業(yè)得到廣泛的應(yīng)用,中國(guó)的經(jīng)驗(yàn)豐富的人員很少

16、。 INFORMIX :在銀行業(yè)中得到廣泛的應(yīng)用,但是在中國(guó)的經(jīng)驗(yàn)豐富的人員很少。8.存儲(chǔ)過(guò)程和函數(shù)的區(qū)別解答:從參數(shù)的返回情況來(lái)看:如果返回多個(gè)參數(shù)值最好使用存儲(chǔ)過(guò)程,如果只有一個(gè)返回值的話可以使用函數(shù)。從調(diào)用情況來(lái)看:如果在SQL語(yǔ)句DML或SELECT中調(diào)用的話一定是存儲(chǔ)函數(shù)或存儲(chǔ)的封裝函數(shù)不可以是存儲(chǔ)過(guò)程,但調(diào)用存儲(chǔ)函數(shù)的時(shí)候還有好多限制以及函數(shù)的純度等級(jí)的問(wèn)題,如果是在過(guò)程化語(yǔ)句中調(diào)用的話,就要看你要實(shí)現(xiàn)什么樣的功能。函數(shù)一般情況下是用來(lái)計(jì)算并返回一個(gè)計(jì)算結(jié)果而存儲(chǔ)過(guò)程一般是用來(lái)完成特定的數(shù)據(jù)操作比方修改、插入數(shù)據(jù)庫(kù)表或執(zhí)行某些DDL語(yǔ)句等等,所以雖然他們的語(yǔ)法上很相似但用戶在使用他

17、們的時(shí)候所需要完成的功能大局部情況下是不同的。9.試述數(shù)據(jù)庫(kù)完整保護(hù)的主要任務(wù)和措施。解答:數(shù)據(jù)庫(kù)的完整性保護(hù)也就是數(shù)據(jù)庫(kù)中數(shù)據(jù)正確性的維護(hù)。數(shù)據(jù)庫(kù)完整性包括三個(gè)內(nèi)容:實(shí)體完整性規(guī)那么,參照物完整性規(guī)那么以及用戶定義完整性規(guī)那么。 前兩個(gè)是有DBMS自動(dòng)處理。實(shí)體完整性規(guī)那么是說(shuō)針對(duì)于基表中的關(guān)鍵字中屬性值不能為空值,是數(shù)據(jù)庫(kù)完整性的根本要求,主關(guān)鍵字和元組的唯一性對(duì)應(yīng)。參照物完整性規(guī)那么是不允許引用不存在的元組:即基表中的外關(guān)鍵字要么為空,要么關(guān)聯(lián)基表中必存在元組。用戶定義完整性規(guī)那么針對(duì)具體的數(shù)據(jù)環(huán)境由用戶具體設(shè)置的規(guī)那么,它反響了具體應(yīng)用中的語(yǔ)義要求。 一個(gè)完整性規(guī)那么一般由下面三局部組

18、成:完整性約束條件設(shè)置,完整性約束條件的檢查以及完整性約束條件的處理.后兩局部在數(shù)據(jù)庫(kù)中一般有相應(yīng)的模塊處理。另外觸發(fā)器也可以做完整性的保護(hù),但觸發(fā)器大量用于主動(dòng)性領(lǐng)域。10.請(qǐng)說(shuō)明SQLServer中delete from tablea & truncate table tablea的區(qū)別解答:兩者都可以用來(lái)刪除表中所有的記錄。區(qū)別在于:truncate是DDL操作,它移動(dòng)HWK,使HWK值為0,不需要 rollback segment .而Delete是DML操作需要rollback segment 且花費(fèi)較長(zhǎng)時(shí)間.11. Oracle安裝完成后,如何用命令行啟動(dòng)和關(guān)閉數(shù)據(jù)庫(kù)?解答

19、:翻開(kāi):STARTUP FORCE RESTRICT PFILE= filename OPEN RECOVER database | MOUNT | NOMOUNT STARTUP OPEN:STARTUP缺省的參數(shù)就是OPEN,翻開(kāi)數(shù)據(jù)庫(kù),允許數(shù)據(jù)庫(kù)的訪問(wèn)。當(dāng)前實(shí)例的控制文件中所描述的所有文件都已經(jīng)翻開(kāi)。 STARTUP MOUNT:MOUNT數(shù)據(jù)庫(kù),僅僅給DBA進(jìn)行管理操作,不允許數(shù)據(jù)庫(kù)的用戶訪問(wèn)。僅僅只是當(dāng)前實(shí)例的控制文件被翻開(kāi),數(shù)據(jù)文件未翻開(kāi)。 STARTUP NOMOUNT:僅僅通過(guò)初始化文件,分配出SGA區(qū),啟動(dòng)數(shù)據(jù)庫(kù)后臺(tái)進(jìn)程,沒(méi)有翻開(kāi)控制文件和數(shù)據(jù)文件。不能訪問(wèn)任何數(shù)據(jù)庫(kù)。 ST

20、ARTUP PFILE= filename:以filename為初始化文件啟動(dòng)數(shù)據(jù)庫(kù),不是采用缺省初始化文件。 STARTUP FORCE:中止當(dāng)前數(shù)據(jù)庫(kù)的運(yùn)行,并開(kāi)始重新正常的啟動(dòng)數(shù)據(jù)庫(kù)。 STARTUP RESTRICT:只允許具有RESTRICTED SESSION權(quán)限的用戶訪問(wèn)數(shù)據(jù)庫(kù)。 STARTUP RECOVER:數(shù)據(jù)庫(kù)啟動(dòng),并開(kāi)始介質(zhì)恢復(fù)關(guān)閉SHUTDOWN有四個(gè)參數(shù):NORMAL、TRANSACTIONAL、IMMEDIATE、ABORT。缺省不帶任何參數(shù)時(shí)表示是NORMAL。命令SHUTDOWN NORMAL:不允許新的連接、等待會(huì)話結(jié)束、等待事務(wù)結(jié)束、做一個(gè)檢查點(diǎn)并關(guān)閉數(shù)據(jù)

21、文件。啟動(dòng)時(shí)不需要實(shí)例恢復(fù)。 SHUTDOWN TRANSACTIONAL:不允許新的連接、不等待會(huì)話結(jié)束、等待事務(wù)結(jié)束、做一個(gè)檢查點(diǎn)并關(guān)閉數(shù)據(jù)文件。啟動(dòng)時(shí)不需要實(shí)例恢復(fù)。 SHUTDOWN IMMEDIATE:不允許新的連接、不等待會(huì)話結(jié)束、不等待事務(wù)結(jié)束、做一個(gè)檢查點(diǎn)并關(guān)閉數(shù)據(jù)文件。沒(méi)有結(jié)束的事務(wù)是自動(dòng)rollback的。啟動(dòng)時(shí)不需要實(shí)例恢復(fù)。 SHUTDOWN ABORT:不允許新的連接、不等待會(huì)話結(jié)束、不等待事務(wù)結(jié)束、不做檢查點(diǎn)且沒(méi)有關(guān)閉數(shù)據(jù)文件。啟動(dòng)時(shí)自動(dòng)進(jìn)行實(shí)例恢復(fù)。 另外,對(duì)于NORMAL、TRANSACTIONAL、IMMEDIATE,DB Buffer Cache的內(nèi)容寫(xiě)入了

22、數(shù)據(jù)文件,沒(méi)有提交的事務(wù)被回滾,所有的資源被釋放,數(shù)據(jù)庫(kù)被“干凈的關(guān)閉。 對(duì)于ABORT,DB Buffer Cache的內(nèi)容沒(méi)有寫(xiě)入數(shù)據(jù)文件,沒(méi)有提交的事務(wù)也沒(méi)有回滾。數(shù)據(jù)庫(kù)沒(méi)有dismount和關(guān)閉,數(shù)據(jù)文件也沒(méi)有關(guān)閉。當(dāng)數(shù)據(jù)庫(kù)啟動(dòng)時(shí),需要通過(guò)redo log恢復(fù)數(shù)據(jù),通過(guò)回滾段對(duì)事務(wù)回滾,對(duì)資源進(jìn)行釋放。12. 類(lèi)有哪三個(gè)根本特性?各特性的優(yōu)點(diǎn)?解答:類(lèi)具有封裝性、繼承性和多態(tài)性。封裝性:類(lèi)的封裝性為類(lèi)的成員提供公有、缺省、保護(hù)和私有等多級(jí)訪問(wèn)權(quán)限,目的是隱藏類(lèi)中的私有變量和類(lèi)中方法的實(shí)現(xiàn)細(xì)節(jié)。繼承性:類(lèi)的繼承性提供從已存在的類(lèi)創(chuàng)立新類(lèi)的機(jī)制,繼承inheritance使一個(gè)新類(lèi)自動(dòng)擁有

23、被繼承類(lèi)父類(lèi)的全部可繼承的成員。多態(tài)性:類(lèi)的多態(tài)性提供類(lèi)中方法執(zhí)行的多樣性,多態(tài)性有兩種表現(xiàn)形式:重載和覆蓋。13.談?wù)剬?duì)XML的理解?說(shuō)明Web應(yīng)用中Web.xml文件的作用?解答:XMLExtensible Markup Language即可擴(kuò)展標(biāo)記語(yǔ)言,它與HTML一樣,都是SGML(Standard Generalized Markup Language,標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言)。Xml是Internet環(huán)境中跨平臺(tái)的,依賴于內(nèi)容的技術(shù),是當(dāng)前處理結(jié)構(gòu)化文檔信息的有力工具。擴(kuò)展標(biāo)記語(yǔ)言XML是一種簡(jiǎn)單的數(shù)據(jù)存儲(chǔ)語(yǔ)言,使用一系列簡(jiǎn)單的標(biāo)記描述數(shù)據(jù),而這些標(biāo)記可以用方便的方式建立,雖然XML占用

24、的空間比二進(jìn)制數(shù)據(jù)要占用更多的空間,但XML極其簡(jiǎn)單易于掌握和使用。web.xml的作用是配置歡迎頁(yè),servlet,filter,listener等的。14.jsp有哪些內(nèi)置對(duì)象?作用分別是什么?至少三個(gè)解答:1request表示 ServletRequest對(duì)象。它包含了有關(guān)瀏覽器請(qǐng)求的信息,并且提供了幾個(gè)用于獲取cookie, header和session數(shù)據(jù)的有用的方法。 2response表示 ServletResponse對(duì)象,并提供了幾個(gè)用于設(shè)置送回 瀏覽器的響應(yīng)的方法如cookies,頭信息等。 3out對(duì)象是javax.jsp.JspWriter的一個(gè)實(shí)例,并提供了幾個(gè)方法使

25、你能用于向?yàn)g覽器回送輸出結(jié)果。 4pageContext表示一個(gè)javax.servlet.jsp.PageContext對(duì)象。它是用于方便存取各種范圍的名字空間、servlet相關(guān)的對(duì)象的API,并且包裝了通用的servlet相關(guān)功能的方法。 5session表示一個(gè)請(qǐng)求的javax.servlet. . Session對(duì)象。Session可以存貯用戶的狀態(tài)信息。 6application 表示一個(gè)javax.servle.ServletContext對(duì)象。這有助于查找有關(guān)servlet引擎和servlet環(huán)境的信息。 7config表示一個(gè)javax.servlet.ServletConf

26、ig對(duì)象。該對(duì)象用于存取servlet實(shí)例的初始化參數(shù)。 8page表示從該頁(yè)面產(chǎn)生的一個(gè)servlet實(shí)例。9exception 針對(duì)錯(cuò)誤網(wǎng)頁(yè),未捕捉的例外15.事務(wù)是什么?有哪些屬性,并簡(jiǎn)要說(shuō)明這些屬性的含義。解答:事務(wù)(Transaction)是訪問(wèn)并可能更新數(shù)據(jù)庫(kù)中各種數(shù)據(jù)項(xiàng)的一個(gè)程序執(zhí)行單元(unit)。事務(wù)通常由高級(jí)數(shù)據(jù)庫(kù)操縱語(yǔ)言或編程語(yǔ)言如SQL,C+或Java書(shū)寫(xiě)的用戶程序的執(zhí)行所引起,并用形如begin transaction和end transaction語(yǔ)句或函數(shù)調(diào)用來(lái)界定。事務(wù)由事務(wù)開(kāi)始(begin transaction)和事務(wù)結(jié)束(end transaction)之

27、間執(zhí)行的全體操作組成。事務(wù)應(yīng)該具有4個(gè)屬性:原子性、一致性、隔離性、持續(xù)性。這四個(gè)屬性通常稱(chēng)為ACID特性。原子性atomicity。一個(gè)事務(wù)是一個(gè)不可分割的工作單位,事務(wù)中包括的諸操作要么都做,要么都不做。一致性consistency。事務(wù)必須是使數(shù)據(jù)庫(kù)從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)。一致性與原子性是密切相關(guān)的。隔離性isolation。一個(gè)事務(wù)的執(zhí)行不能被其他事務(wù)干擾。即一個(gè)事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對(duì)并發(fā)的其他事務(wù)是隔離的,并發(fā)執(zhí)行的各個(gè)事務(wù)之間不能互相干擾。持久性durability。持續(xù)性也稱(chēng)永久性permanence,指一個(gè)事務(wù)一旦提交,它對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的改變就應(yīng)該是永久性的

28、。接下來(lái)的其他操作或故障不應(yīng)該對(duì)其有任何影響。16、Collection 和 Collections的區(qū)別?解答:Collection是java.util下的接口,它是各種集合的父接口,繼承于它的接口主要有Set 和List;Collections是個(gè)java.util下的類(lèi),是針對(duì)集合的幫助類(lèi),提供一系列靜態(tài)方法實(shí)現(xiàn)對(duì)各種集合的搜索、排序、線程平安化等操作。17、HashMap與TreeMap的區(qū)別?解答:HashMap通過(guò)hashcode對(duì)其內(nèi)容進(jìn)行快速查找,而TreeMap中所有的元素都保持著某種固定的順序,如果你需要得到一個(gè)有序的結(jié)果你就應(yīng)該使用TreeMapHashMap中元素的排列

29、順序是不固定的。18、ArrayList和Vector的區(qū)別?解答:同步性:Vector是線程平安的,也就是說(shuō)是同步的,而ArrayList是線程不平安的,不是同步的;數(shù)據(jù)增長(zhǎng):當(dāng)需要增長(zhǎng)時(shí),Vector默認(rèn)增長(zhǎng)為原來(lái)一培,而ArrayList卻是原來(lái)的一半。19、HashMap和Hashtable的區(qū)別?解答:HashMap是Hashtable的輕量級(jí)實(shí)現(xiàn)非線程平安的實(shí)現(xiàn),他們都實(shí)現(xiàn)了Map接口,主要區(qū)別在于HashMap允許空null鍵值key,由于非線程平安,效率上高于Hashtable。HashMap允許將null作為一個(gè)entry的key或者value,而Hashtable不允許。H

30、ashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因?yàn)閏ontains方法容易讓人引起誤解。Hashtable繼承自Dictionary類(lèi),而HashMap是Java1.2引進(jìn)的Map interface的一個(gè)實(shí)現(xiàn)。最大的不同是,Hastable的方法是synchronize的,而HashMap不是,在多個(gè)線程訪問(wèn)Hashtable時(shí),不需要自己為它的方法實(shí)現(xiàn)同步,而HashMap 就必須為之提供同步。20.請(qǐng)說(shuō)出ArrayList,Vector, LinkedList的存儲(chǔ)性能和特性解答:ArrayList和Vector都是

31、使用數(shù)組方式存儲(chǔ)數(shù)據(jù),此數(shù)組元素?cái)?shù)大于實(shí)際存儲(chǔ)的數(shù)據(jù)以便增加和插入元素,它們都允許直接按序號(hào)索引元素,但是插入元素要涉及數(shù)組元素移動(dòng)等內(nèi)存操作,所以索引數(shù)據(jù)快而插入數(shù)據(jù)慢,Vector由于使用了synchronized方法線程平安,通常性能上較ArrayList差,而LinkedList使用雙向鏈表實(shí)現(xiàn)存儲(chǔ),按序號(hào)索引數(shù)據(jù)需要進(jìn)行前向或后向遍歷,但是插入數(shù)據(jù)時(shí)只需要記錄本項(xiàng)的前后項(xiàng)即可,所以插入速度較快。21. 描述J2EE框架的多層結(jié)構(gòu),并簡(jiǎn)要說(shuō)明各層的作用。解答:1) Presentation layer表示層a. 表示邏輯生成界面代碼b. 接收請(qǐng)求c. 處理業(yè)務(wù)層拋出的異常d. 負(fù)責(zé)規(guī)那

32、么驗(yàn)證數(shù)據(jù)格式,數(shù)據(jù)非空等e. 流程控制2) Service layer效勞層/業(yè)務(wù)層a.封裝業(yè)務(wù)邏輯處理,并且對(duì)外暴露接口b.負(fù)責(zé)事務(wù),平安等效勞3) Persistence layer持久層a 封裝數(shù)據(jù)訪問(wèn)的邏輯,暴露接口b.提供方便的數(shù)據(jù)訪問(wèn)的方案查詢語(yǔ)言,API,映射機(jī)制等4Domain layer域?qū)觓. 業(yè)務(wù)對(duì)象以及業(yè)務(wù)關(guān)系的表示b. 處理簡(jiǎn)單的業(yè)務(wù)邏輯c. 域?qū)拥膶?duì)象可以穿越表示層,業(yè)務(wù)層,持久層軟件分層結(jié)構(gòu)使得代碼維護(hù)非常方便,設(shè)計(jì)明確,各層獨(dú)立,專(zhuān)注自己擅長(zhǎng)的領(lǐng)域。22.請(qǐng)談?wù)剬?duì)SOA的認(rèn)識(shí)。解答:面向效勞的體系結(jié)構(gòu)Service-Oriented Architecture,

33、SOA是一個(gè)組件模型,它將應(yīng)用程序的不同功能單元稱(chēng)為效勞通過(guò)這些效勞之間定義良好的接口和契約聯(lián)系起來(lái)。接口是采用中立的方式進(jìn)行定義的,它應(yīng)該獨(dú)立于實(shí)現(xiàn)效勞的硬件平臺(tái)、操作系統(tǒng)和編程語(yǔ)言。這使得構(gòu)建在各種這樣的系統(tǒng)中的效勞可以一種統(tǒng)一和通用的方式進(jìn)行交互。23.簡(jiǎn)要描述如何結(jié)合struts、hibernate、spring開(kāi)發(fā)Web應(yīng)用?解答:Struts可以將jsp頁(yè)面的表單關(guān)聯(lián)起來(lái),就是把JSP頁(yè)面的表單數(shù)據(jù)封裝成javaBean,這樣的話,在action中你再也不需要使用傳統(tǒng)的request.getParameter(“name);還有struts有一個(gè)控制器,你在struts編程中的控制

34、器(XxxAction)都是繼承總的ActionServlet,它能集中處理請(qǐng)求,然后轉(zhuǎn)到相關(guān)的頁(yè)面。還有struts的表單驗(yàn)證組件,不用你寫(xiě)js驗(yàn)證了,只需要你配置一下文件就可以了。另外struts的令牌機(jī)制可以防表單重復(fù)提交。Spring 是一個(gè)輕量級(jí)容器,非侵入性.包含依賴注入,AOP等。它是為了解決企業(yè)應(yīng)用程序開(kāi)發(fā)復(fù)雜性而創(chuàng)立的??蚣艿闹饕獌?yōu)勢(shì)之一就是其分層架構(gòu),分層架構(gòu)允許您選擇使用哪一個(gè)組件,同時(shí)為 J2EE 應(yīng)用程序開(kāi)發(fā)提供集成的框架。Hibernate:它可以讓我們以O(shè)O的方式操作數(shù)據(jù)庫(kù),這讓我們看到了hibernate的強(qiáng)大之處,體驗(yàn)到操作數(shù)據(jù)的方便。但hibernate最耀

35、眼之處是hibernate的緩存機(jī)制,而不是以O(shè)O的方式操作數(shù)據(jù)庫(kù)。Hibernate的緩存機(jī)制不外乎是一級(jí)緩存session,二級(jí)緩存sessionFactory,和第三方緩存如ehcache。也就是hibernate的最強(qiáng)大的地方是它的緩存,理解了這個(gè)才能真正的理解hibernate,Hibernate的命名查詢/命名參數(shù)查詢,就是將hql語(yǔ)句放在一個(gè)單獨(dú)的xml文件之中,它仍然讓人們以面向?qū)ο蟮姆绞饺ゲ倏v數(shù)據(jù),而不用在以O(shè)O的方式寫(xiě)著代碼的同時(shí),然后再轉(zhuǎn)變思維,用面向關(guān)系的方式去寫(xiě)那些sql語(yǔ)句。但hibernate不僅做了這些,它的native sql查詢方式,完全滿足sql語(yǔ)句的偏愛(ài)

36、者,它像ibatis一樣,將sql語(yǔ)句放在配置文件之中。24.說(shuō)明反轉(zhuǎn)控制IOC和面向方向編程AOP在spring中的應(yīng)用解答:Spring 核心容器Core提供Spring框架的根本功能。核心容器的主要組件是BeanFactory,它是工廠模式的實(shí)現(xiàn)。BeanFactory使用控制反轉(zhuǎn)Ioc模式將應(yīng)用程序的配置和依賴性標(biāo)準(zhǔn)與實(shí)際的應(yīng)用代碼程序分開(kāi)。Spring的聲明式事務(wù)基于AOP實(shí)現(xiàn),卻并不需要程序開(kāi)發(fā)者成為AOP專(zhuān)家,亦可輕易使用Spring的聲明式事務(wù)管理。25.請(qǐng)看如下片段:<set name=“addresslazy=“trueinverse=“falsecascade=“a

37、ll-delete-orphan><key column = “USERID> </key><one-to-many class=“com.norteksoft.erm.model.Address/></ set >解釋lazy、inverse、cascade以及all-delete-orphan屬性的含義;并給出例如代碼,說(shuō)明在如下組合情況下,對(duì)于save、update、delete一對(duì)多關(guān)系中的一方對(duì)象操作時(shí)的區(qū)別:inversecascadetrueall-delete-orphanfalseall-delete-orphantrue

38、allfalsealltruenonefalsenone解答:(一)lazy:延遲加載Lazy的有效期:只有在session翻開(kāi)的時(shí)候才有效;session關(guān)閉后lazy就沒(méi)效了。lazy策略可以用在:a<class>標(biāo)簽上:可以取值true/falseb.<property>標(biāo)簽上,可以取值true/false,這個(gè)特性需要類(lèi)增強(qiáng)c.<set>/<list>等集合上,可以取值為true/false/extrad.<one-to-one>/<many-to-one>等標(biāo)簽上,可以取值false/proxy/no-proxy

39、1) get和load的區(qū)別:a.get不支持延遲加載,而load支持。b.當(dāng)查詢特定的數(shù)據(jù)庫(kù)中不存在的數(shù)據(jù)時(shí),get會(huì)返回null,而load那么拋出異常。2) 類(lèi)(Class)的延遲加載:a. 設(shè)置<class>標(biāo)簽中的lazy=true,或是保持默認(rèn)即不配置lazy屬性)b. 如果lazy的屬性值為true,那么在使用load方法加載數(shù)據(jù)時(shí),只有確實(shí)用到數(shù)據(jù)的時(shí)候才會(huì)發(fā)出sql語(yǔ)句;這樣有可能減少系統(tǒng)的開(kāi)銷(xiāo)。3) 集合(collection)的延遲加載:可以取值true,false,extraa.true:默認(rèn)取值,它的意思是只有在調(diào)用這個(gè)集合獲取里面的元素對(duì)象時(shí),才發(fā)出查詢

40、語(yǔ)句,加載其集合元素的數(shù)據(jù)b.false:取消懶加載特性,即在加載對(duì)象的同時(shí),就發(fā)出第二條查詢語(yǔ)句加載其關(guān)聯(lián)集合的數(shù)據(jù)c.extra:一種比較聰明的懶加載策略,即調(diào)用集合的size/contains等方法的時(shí)候,hibernate并不會(huì)去加載整個(gè)集合的數(shù)據(jù),而是發(fā)出一條聰明的SQL語(yǔ)句,以便獲得需要的值,只有在真正需要用到這些集合元素對(duì)象數(shù)據(jù)的時(shí)候,才去發(fā)出查詢語(yǔ)句加載所有對(duì)象的數(shù)據(jù)4) Hibernate單端關(guān)聯(lián)懶加載策略:即在<one-to-one>/<many-to-one>標(biāo)簽上可以配置懶加載策略??梢匀≈禐椋篺alse/proxy/no-proxya.fals

41、e:取消懶加載策略,即在加載對(duì)象的同時(shí),發(fā)出查詢語(yǔ)句,加載其關(guān)聯(lián)對(duì)象xy:這是hibernate對(duì)單端關(guān)聯(lián)的默認(rèn)懶加載策略,即只有在調(diào)用到其關(guān)聯(lián)對(duì)象的方法的時(shí)候才真正發(fā)出查詢語(yǔ)句查詢其對(duì)象數(shù)據(jù),其關(guān)聯(lián)對(duì)象是代理類(lèi)c.no-proxy:這種懶加載特性需要對(duì)類(lèi)進(jìn)行增強(qiáng),使用no-proxy,其關(guān)聯(lián)對(duì)象不是代理類(lèi)注意:在class標(biāo)簽上配置的lazy屬性不會(huì)影響到關(guān)聯(lián)對(duì)象!二inverseinverse是指的關(guān)聯(lián)關(guān)系的控制方向,inverse=false的sideside其實(shí)是指inversefalse所位于的class元素端有責(zé)任維護(hù)關(guān)系,而inversetrue端無(wú)須維護(hù)這些關(guān)系三ca

42、scadecascade指的是層級(jí)之間的連鎖操作。在定義關(guān)聯(lián)對(duì)象的映射時(shí),使用cascade=all,cascade=save-update,cascade=all-delete-orphan或cascade=deletea.如果父對(duì)象被保存,所有的子對(duì)象會(huì)被傳遞到saveOrUpdate()方法去執(zhí)行(cascade=save-update)b.如果父對(duì)象被傳遞到update()或者saveOrUpdate(),所有的子對(duì)象會(huì)被傳遞到saveOrUpdate()方法去執(zhí)行(cascade=save-update)c.如果一個(gè)臨時(shí)的子對(duì)象被一個(gè)持久化的父對(duì)象引用了,它會(huì)被傳遞到saveOrUp

43、date()去執(zhí)行 (cascade=save-update)d.如果父對(duì)象被刪除了,所有的子對(duì)象對(duì)被傳遞到delete()方法執(zhí)行 (cascade=delete)e.如果臨時(shí)的子對(duì)象不再被持久化的父對(duì)象引用,什么都不會(huì)發(fā)生必要時(shí),程序應(yīng)該明確的刪除這個(gè)子對(duì)象,除非聲明了cascade=all-delete-orphan,在這種情況下,成為“孤兒的子對(duì)象會(huì)被刪除。(四) save、update、delete一對(duì)多關(guān)系中的一方對(duì)象操作時(shí)的區(qū)別1當(dāng)一方設(shè)置inverse=true時(shí),所有由一方發(fā)出的操作都不會(huì)關(guān)聯(lián)到多方。2)當(dāng)一方設(shè)置 inverse=false, cascade=all-del

44、ete-orphan時(shí),將刪除不再和一方對(duì)象關(guān)聯(lián)的所有多方對(duì)象。3當(dāng)一方設(shè)置 inverse=false, cascade=all時(shí),當(dāng)保存和刪除一方對(duì)象時(shí),級(jí)聯(lián)保存和刪除所有關(guān)聯(lián)的多方對(duì)象。4當(dāng)一方設(shè)置 inverse=false, cascade=none時(shí),當(dāng)對(duì)一方操作時(shí),不級(jí)聯(lián)到關(guān)聯(lián)的多方對(duì)象。26.簡(jiǎn)單說(shuō)明什么是遞歸?什么情況會(huì)使用?并使用java實(shí)現(xiàn)一個(gè)簡(jiǎn)單的遞歸程序。解答:1遞歸做為一種算法在程序設(shè)計(jì)語(yǔ)言中廣泛應(yīng)用.是指函數(shù)/過(guò)程/子程序在運(yùn)行過(guò)程中直接或間接調(diào)用自身而產(chǎn)生的重入現(xiàn)象。2遞歸算法一般用于解決三類(lèi)問(wèn)題:a.數(shù)據(jù)的定義是按遞歸定義的。(Fibonacci斐波那契函數(shù))

45、b.問(wèn)題解法按遞歸算法實(shí)現(xiàn)。(回溯)c.數(shù)據(jù)的結(jié)構(gòu)形式是按遞歸定義的。(樹(shù)的遍歷,圖的搜索)3.這是一個(gè)排列的例子,它所做的工作是將輸入的一個(gè)字符串中的所有元素進(jìn)行排序并輸出,例如:你給出的參數(shù)是abc 那么程序會(huì)輸出: abc acb bac bca cab cba a.算法的出口在于:也就是現(xiàn)在給出的排列元素只有一個(gè)時(shí)。 b.算法的逼近過(guò)程:先確定排列的第一位元素,也就是循環(huán)中所代表的元素, 然后開(kāi)始減少排列元素,如此下去,直到 public class Foo public static void main(String args) permute(“abc);public static

46、 void permute(String str) char strArray = str.toCharArray();permute(strArray, 0, strArray.length 1);public static void permute(char list, int low, int high) int i;if (low = high) String cout = “;for (i = 0; i <= high; i+)cout += listi;System.out.println(cout); else for (i = low; i <= high; i+)

47、 char temp = listlow;listlow = listi;listi = temp;permute(list, low + 1, high);temp = listlow;listlow = listi;listi = temp;27.列出自己常用的jdk包.解答:JDK常用的packagejava.lang: 這個(gè)是系統(tǒng)的根底類(lèi),比方String等都是這里面的,這個(gè)package是唯一一個(gè)可以不用import就可以使用的Packagejava.io: 這里面是所有輸入輸出有關(guān)的類(lèi),比方文件操作等: 這里面是與網(wǎng)絡(luò)有關(guān)的類(lèi),比方URL,URLConnection等。java.u

48、til : 這個(gè)是系統(tǒng)輔助類(lèi),特別是集合類(lèi)Collection,List,Map等。java.sql: 這個(gè)是數(shù)據(jù)庫(kù)操作的類(lèi),Connection, Statememt,ResultSet等28.列出自己常用的jdk中的數(shù)據(jù)結(jié)構(gòu)解答:線性表,鏈表,哈希表是常用的數(shù)據(jù)結(jié)構(gòu)。29List、Map、Set三個(gè)接口存儲(chǔ)元素時(shí)各有什么特點(diǎn)?解答:1List是有序的Collection,使用此接口能夠精確的控制每個(gè)元素插入的位置。用戶能夠使用索引元素在List中的位置,類(lèi)似于數(shù)組下標(biāo)來(lái)訪問(wèn)List中的元素,這類(lèi)似于Java的數(shù)組。2Set是一種不包含重復(fù)的元素的Collection,即任意的兩個(gè)元素e1和

49、e2都有e1.equals(e2)=false,Set最多有一個(gè)null元素。3Map接口 :請(qǐng)注意,Map沒(méi)有繼承Collection接口,Map提供key到value的映射30. 簡(jiǎn)述基于Struts框架Web應(yīng)用的工作流程解答:在web應(yīng)用啟動(dòng)時(shí)就會(huì)加載初始化ActionServlet,ActionServlet從struts-config.xml文件中讀取配置信息,把它們存放到各種配置對(duì)象中, 當(dāng)ActionServlet接收到一個(gè)客戶請(qǐng)求時(shí),將執(zhí)行如下流程. 1)檢索和用戶請(qǐng)求匹配的ActionMapping實(shí)例,如果不存在,就返回請(qǐng)求路徑無(wú)效信息; 2)如果ActionForm實(shí)例

50、不存在,就創(chuàng)立一個(gè)ActionForm對(duì)象,把客戶提交的表單數(shù)據(jù)保存到ActionForm對(duì)象中; 3)根據(jù)配置信息決定是否需要表單驗(yàn)證.如果需要驗(yàn)證,就調(diào)用ActionForm的validate()方法; 4)如果ActionForm的validate()方法返回null或返回一個(gè)不包含ActionMessage的ActionErrors對(duì)象, 就表示表單驗(yàn)證成功; 5)ActionServlet根據(jù)ActionMapping所包含的映射信息決定將請(qǐng)求轉(zhuǎn)發(fā)給哪個(gè)Action,如果相應(yīng)的Action實(shí)例不存在,就先創(chuàng)立這個(gè)實(shí)例,然后調(diào)用Action的execute()方法; 6)Action的

51、execute()方法返回一個(gè)ActionForward對(duì)象,ActionServlet在把客戶請(qǐng)求轉(zhuǎn)發(fā)給ActionForward對(duì)象指向的JSP組件; 7)ActionForward對(duì)象指向JSP組件生成動(dòng)態(tài)網(wǎng)頁(yè),返回給客戶;31. 在工程中用過(guò)Spring的哪些方面?及用過(guò)哪些Ajax框架?解答:在工程使用過(guò)Spring IOC ,AOP,DAO,ORM,還有上下文環(huán)境。在工程使用過(guò)Ext,Juery等Ajax框架.32、abstract class和interface有什么區(qū)別?解答:聲明方法的存在而不去實(shí)現(xiàn)它的類(lèi)被叫做抽象類(lèi)abstract class,它用于要?jiǎng)?chuàng)立一個(gè)表達(dá)某些根本行

52、為的類(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)這樣的接口而獲得。接口中的所有方法都是抽象的,所有成員變量都是public static final的。一個(gè)類(lèi)可以實(shí)現(xiàn)多個(gè)接口,當(dāng)類(lèi)實(shí)現(xiàn)接口時(shí),必須實(shí)現(xiàn)接口的所有方法。抽象類(lèi)在Java語(yǔ)

53、言中表示的是一種單繼承的關(guān)系,對(duì)于interface 來(lái)說(shuō)那么不然,并不要求interface的實(shí)現(xiàn)者和interface定義在概念本質(zhì)上是一致的,僅僅是實(shí)現(xiàn)了interface定義的契約而已。;抽象類(lèi)中可以定義自己的成員變量,也可以包含非抽象的方法,而在接口中只能有靜態(tài)的常量,所有方法必須是抽象的;實(shí)現(xiàn)抽象類(lèi)時(shí)可以只實(shí)現(xiàn)其中的局部方法,而要是實(shí)現(xiàn)一個(gè)接口的話就必須實(shí)現(xiàn)這個(gè)接口中的所有抽象方法。33.MVC模式中M,V,C每個(gè)代表意義,并簡(jiǎn)述在Struts中MVC的表現(xiàn)方式。解答:MVC是Model-View-Controller 的縮寫(xiě),Model代表的是應(yīng)用的業(yè)務(wù)邏輯通過(guò)JavaBean,

54、EJB組件實(shí)現(xiàn),View 是應(yīng)用的表示層由JSP頁(yè)面產(chǎn)生Controller是通過(guò)應(yīng)用的處理過(guò)程控制,一般是一個(gè)servert通過(guò)這種設(shè)計(jì)模型把應(yīng)用邏輯,處理過(guò)程和顯示邏輯分成不同的組件實(shí)現(xiàn),這些組件可以進(jìn)行交互和重用。在Struts框架中Controller功能由ActionServlet和ActionMapping對(duì)象構(gòu)成,核心是一個(gè)Servlet類(lèi)型的對(duì)象ActionServlet,它用來(lái)接收客戶端的請(qǐng)求。ActionServlet包括一組基于配置的ActionMapping對(duì)象,每個(gè)ActionMapping對(duì)象實(shí)現(xiàn)了一個(gè)請(qǐng)求到一個(gè)具體的Model局部的Action處理器對(duì)象之間的映射

55、。Model局部由Action和ActionForm對(duì)象構(gòu)成。所有的Action處理器對(duì)象都是開(kāi)發(fā)者從Struts的Action類(lèi)派生的子類(lèi)。Action處理器對(duì)象封裝了具體的處理邏輯,調(diào)用業(yè)務(wù)邏輯模塊,并且把響應(yīng)提交到適宜的View組件以產(chǎn)生響應(yīng)。Struts提供的ActionForm組件對(duì)象可以通過(guò)定義屬性描述客戶端表單數(shù)據(jù),開(kāi)發(fā)者可以從它派生子類(lèi)對(duì)象,并利用它和Struts提供的自定義標(biāo)記庫(kù)相結(jié)合,可以實(shí)現(xiàn)對(duì)客戶端的表單數(shù)據(jù)的良好封裝和支持,Action處理器對(duì)象可以直接對(duì)它進(jìn)行讀寫(xiě),而不再需要和request、response對(duì)象進(jìn)行數(shù)據(jù)交互。通過(guò)ActionForm組件對(duì)象實(shí)現(xiàn)了對(duì)V

56、iew和Model之間交互的支持View局部是通過(guò)JSP技術(shù)實(shí)現(xiàn)的。Struts提供了自定義的標(biāo)記庫(kù),通過(guò)這些自定義標(biāo)記庫(kù)可以非常容易地和系統(tǒng)的Model局部交互,通過(guò)使用這些自定義標(biāo)記庫(kù)創(chuàng)立的JSP表單,可以實(shí)現(xiàn)對(duì)Model局部中的ActionForm的映射,完成對(duì)用戶數(shù)據(jù)的封裝。34java語(yǔ)言中public、private、protected三個(gè)關(guān)鍵字的用法,重寫(xiě)和重載的區(qū)別。解答:作用域 當(dāng)前類(lèi) 同包 子類(lèi) 其它public protected × default × × private × × ×重寫(xiě):發(fā)生在父子類(lèi)之間,方法名相同,參數(shù)的類(lèi)型、個(gè)數(shù)、順序相同,返回值相同,訪問(wèn)權(quán)限不能更封閉,拋出異常不能寬泛;重載:發(fā)生在同一個(gè)類(lèi)中,方法名相同,但是參數(shù)不同類(lèi)型不同

溫馨提示

  • 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)論