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

下載本文檔

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

文檔簡(jiǎn)介

1J2EE是什么它包括哪些技術(shù)解答從整體上講,J2EE是使用JAVA技術(shù)開發(fā)企業(yè)級(jí)應(yīng)用的工業(yè)標(biāo)準(zhǔn),它是JAVA技術(shù)不斷適應(yīng)和促進(jìn)企業(yè)級(jí)應(yīng)用過程中的產(chǎn)物。適用于企業(yè)級(jí)應(yīng)用的J2EE,提供一個(gè)平臺(tái)獨(dú)立的、可移植的、多用戶的、安全的和基于標(biāo)準(zhǔn)的企業(yè)級(jí)平臺(tái),從而簡(jiǎn)化企業(yè)應(yīng)用的開發(fā)、管理和部署。J2EE是一個(gè)標(biāo)準(zhǔn),而不是一個(gè)現(xiàn)成的產(chǎn)品。主要包括以下這些技術(shù)1SERVLETSERVLET是JAVA平臺(tái)上的CGI技術(shù)。SERVLET在服務(wù)器端運(yùn)行,動(dòng)態(tài)地生成WEB頁面。與傳統(tǒng)的CGI和許多其它類似CGI的技術(shù)相比,JAVASERVLET具有更高的效率并更容易使用。對(duì)于SERVLET,重復(fù)的請(qǐng)求不會(huì)導(dǎo)致同一程序的多次轉(zhuǎn)載,它是依靠線程的方式來支持并發(fā)訪問的。2JSPJSPJAVASERVERPAGE是一種實(shí)現(xiàn)普通靜態(tài)HTML和動(dòng)態(tài)頁面輸出混合編碼的技術(shù)。從這一點(diǎn)來看,非常類似MICROSOFTASP、PHP等技術(shù)。借助形式上的內(nèi)容和外觀表現(xiàn)的分離,WEB頁面制作的任務(wù)可以比較方便地劃分給頁面設(shè)計(jì)人員和程序員,并方便地通過JSP來合成。在運(yùn)行時(shí)態(tài),JSP將會(huì)被首先轉(zhuǎn)換成SERVLET,并以SERVLET的形態(tài)編譯運(yùn)行,因此它的效率和功能與SERVLET相比沒有差別,一樣具有很高的效率。3EJBEJB定義了一組可重用的組件ENTERPRISEBEANS。開發(fā)人員可以利用這些組件,像搭積木一樣建立分布式應(yīng)用。4JDBCJDBCJAVADATABASECONNECTIVITY,JAVA數(shù)據(jù)庫(kù)連接API是一個(gè)標(biāo)準(zhǔn)SQLSTRUCTUREDQUERYLANGUAGE,結(jié)構(gòu)化查詢語言數(shù)據(jù)庫(kù)訪問接口,它使數(shù)據(jù)庫(kù)開發(fā)人員能夠用標(biāo)準(zhǔn)JAVAAPI編寫數(shù)據(jù)庫(kù)應(yīng)用程序。JDBCAPI主要用來連接數(shù)據(jù)庫(kù)和直接調(diào)用SQL命令執(zhí)行各種SQL語句。利用JDBCAPI可以執(zhí)行一般的SQL語句、動(dòng)態(tài)SQL語句及帶IN和OUT參數(shù)的存儲(chǔ)過程。JAVA中的JDBC相當(dāng)于MICROSOFT平臺(tái)中的ODBCOPENDATABASECONNECTIVITY。2測(cè)試生命周期、測(cè)試過程分為幾個(gè)階段,以及各階段的含義解答軟件測(cè)試生命周期一般包括6個(gè)階段1)計(jì)劃2)分析,3)設(shè)計(jì),4)構(gòu)建,5)測(cè)試周期,6)最后測(cè)試和實(shí)施,1)計(jì)劃產(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,RATIONALROSE,POWERDESIGNER等4什么是WEB容器解答容器就是一種服務(wù)程序,在服務(wù)器一個(gè)端口就有一個(gè)提供相應(yīng)服務(wù)的程序,而這個(gè)程序就是處理從客戶端發(fā)出的請(qǐng)求,如JAVA中的TOMCAT容器,ASP的IIS或PWS都是這樣的容器。5運(yùn)行時(shí)異常與一般異常有何異同解答異常表示程序運(yùn)行過程中可能出現(xiàn)的非正常狀態(tài),運(yùn)行時(shí)異常表示虛擬機(jī)的通常操作中可能遇到的異常,是一種常見運(yùn)行錯(cuò)誤。JAVA編譯器要求方法必須聲明拋出可能發(fā)生的非運(yùn)行時(shí)異常,但是并不要求必須聲明拋出未被捕獲的運(yùn)行時(shí)異常。6HIBERNATE中不看數(shù)據(jù)庫(kù),不看XML文件,不看查詢語句,怎么樣能知道表結(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)有SQLSERVER、ORACLE、SYBASE、INFORMIX和DB2。本文從性能,可伸縮性和并行性,安全性,操作簡(jiǎn)便,使用風(fēng)險(xiǎn),開放性,易維護(hù)性和價(jià)格,數(shù)據(jù)庫(kù)二次開發(fā)方面比較了SQLSERVER,ORACLE、SYBASE、DB2、INFORMIX數(shù)據(jù)庫(kù)1)性能SQLSERVER老版本多用戶時(shí)性能不佳,新版本的性能有了明顯的改善,各項(xiàng)處理能力都有了明顯的提高。保持了多項(xiàng)TPCC(TPCC值被廣泛用于衡量C/S環(huán)境下,由服務(wù)器和客戶端構(gòu)筑的整體系統(tǒng)的性能,它由事物處理性能委員會(huì)(TPC,TRANSACTIONPROCESSINGCORP)制定,TPC為非贏利性國(guó)際組織。)紀(jì)錄。ORACLE性能最高,保持WINDOWSNT下的TPCC的世界記錄。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)可伸縮性,并行性SQLSERVER以前版本SQLSERVER并行實(shí)施和共存模型并不成熟。很難處理大量的用戶數(shù)和數(shù)據(jù)卷。伸縮性有限。新版本性能有了較大的改善,在MICROSOFTADVANCEDSERVERS上有突出的表現(xiàn),超過了他的主要競(jìng)爭(zhēng)對(duì)手。ORACLE平行服務(wù)器通過使一組結(jié)點(diǎn)共享同一簇中的工作來擴(kuò)展WINDOWNT的能力,提供高可用性和高伸縮性的簇的解決方案。如果WINDOWSNT不能滿足需要,用戶可以把數(shù)據(jù)庫(kù)移到UNIX中,具有很好的伸縮性。SYBASE新版本具有較好的并行性,速度快,對(duì)巨量數(shù)據(jù)無明顯影響,但是技術(shù)實(shí)現(xiàn)復(fù)雜,需要程序支持,伸縮性有限。DB2DB2具有很好的并行性。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í)被稱為節(jié)點(diǎn)或數(shù)據(jù)庫(kù)節(jié)點(diǎn),伸縮性有限。INFORMIX采用單進(jìn)程多線程的技術(shù),具有較好的并行性。但是僅運(yùn)行于UNIX平臺(tái),伸縮性有限。3)安全性SQLSERVERMICROSOFTADVANCEDSERVER獲得最高安全認(rèn)證,服務(wù)器平臺(tái)的穩(wěn)定性是數(shù)據(jù)庫(kù)的穩(wěn)定性的基礎(chǔ),新版本的SQL的安全性有了極大的提高。ORACLE獲得最高認(rèn)證級(jí)別的ISO標(biāo)準(zhǔn)認(rèn)證。SYBASE通過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)便SQLSERVER操作簡(jiǎn)單,采用圖形界面。管理也很方便,而且編程接口特別友好它的SQLDMO讓編程變得非常方便,從易維護(hù)性和價(jià)格上SQLSERVER明顯占有優(yōu)勢(shì)。ORACLE較復(fù)雜,同時(shí)提供GUI和命令行,在WINDOWSNT和UNIX,LINUX下操作相同。對(duì)數(shù)據(jù)庫(kù)管理人員要求較高。SYBASE復(fù)雜,使用命令行操作,對(duì)數(shù)據(jù)庫(kù)管理人員要求較高。DB2操作簡(jiǎn)單,同時(shí)提供GUI和命令行,在WINDOWSNT和UNIX下操作相同。INFORMIX使用和管理復(fù)雜,命令行操作。對(duì)數(shù)據(jù)庫(kù)管理人員要求較高。5)使用風(fēng)險(xiǎn)SQLSERVER完全重寫的代碼,性能和兼容性有了較大的提高,與ORACLE,DB2的性能差距明顯減小。該產(chǎn)品的出臺(tái)經(jīng)歷了長(zhǎng)期的測(cè)試,為產(chǎn)品的安全和穩(wěn)定進(jìn)行了全面的檢測(cè),安全穩(wěn)定性有了明顯的提高。ORACLE長(zhǎng)時(shí)間的開發(fā)經(jīng)驗(yàn),完全向下兼容,可以安全的進(jìn)行數(shù)據(jù)庫(kù)的升級(jí),在企業(yè),政府中得到廣泛的應(yīng)用。并且如果在WINNT上無法滿足數(shù)據(jù)的要求,可以安全的把數(shù)據(jù)轉(zhuǎn)移到UNIX上來。SYBASE開發(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開發(fā)時(shí)間較長(zhǎng),升級(jí)較復(fù)雜,穩(wěn)定性較好,數(shù)據(jù)安全有保障。風(fēng)險(xiǎn)小。在安全要求極高的銀行,證券行業(yè)中得到了廣泛的應(yīng)用。6)開放性SQLSERVER只能在WINDOWS上運(yùn)行,C/S結(jié)構(gòu),只支持WINDOWS客戶,可以用ADO,DAO,OLEDB,ODBC連接。WINDOWS9X系列產(chǎn)品是偏重于桌面應(yīng)用,NTSERVER適合各種大中小型企業(yè)。操作系統(tǒng)的穩(wěn)定對(duì)數(shù)據(jù)庫(kù)是十分重要的。WINDOWS平臺(tái)的可靠性,安全性經(jīng)過了最高級(jí)別的C2認(rèn)證的。在處理大數(shù)據(jù)量的關(guān)鍵業(yè)務(wù)時(shí)提供了較好的性能。ORACLE能在所有主流平臺(tái)上運(yùn)行(包括WINDOWS)。完全支持所有的工業(yè)標(biāo)準(zhǔn)。采用完全開放策略。多層次網(wǎng)絡(luò)計(jì)算,支持多種工業(yè)標(biāo)準(zhǔn),可以用ODBC,JDBC,OCI等網(wǎng)絡(luò)客戶連接??梢允箍蛻暨x擇最適合的解決方案。對(duì)開發(fā)商全力支持。SYBASE能在所有主流平臺(tái)上運(yùn)行,在銀行業(yè)中得到了廣泛的應(yīng)用。DB2有較好的開放性,最適于海量數(shù)據(jù)??缙脚_(tái),多層結(jié)構(gòu),支持ODBC,JDBC等客戶。在大型的國(guó)際企業(yè)中得到最為廣泛的應(yīng)用,在全球的500家最大的企業(yè)中,大部分采用DB2數(shù)據(jù)庫(kù)服務(wù)器。IINFORMIX僅運(yùn)行在UNIX平臺(tái),包括SUNOS、HPUX、ALFAOSF/1。在銀行中得到廣泛的應(yīng)用。7)易維護(hù)性和價(jià)格SQLSERVER從易維護(hù)性和價(jià)格上SQLSERVER明顯占有優(yōu)勢(shì)。基于MICROSOFT的一貫風(fēng)格,SQLSERVER的圖形管理界面帶來了明顯的易用性,微軟的數(shù)據(jù)庫(kù)管理員培訓(xùn)進(jìn)行的比較充分,可以輕松的找到很好的數(shù)據(jù)庫(kù)管理員,數(shù)據(jù)庫(kù)管理費(fèi)用比較低,SQLSERVER的價(jià)格也是很低的,但是在LICENSE的購(gòu)買上會(huì)抬高價(jià)格??傮w來說SQLSERVER的價(jià)格在商用數(shù)據(jù)庫(kù)中是最低的。ORACLE從易維護(hù)性和價(jià)格上來說ORACLE的價(jià)格是比較高的,管理比較復(fù)雜,由于ORACLE的應(yīng)用很廣泛,經(jīng)驗(yàn)豐富的ORACLE數(shù)據(jù)庫(kù)管理員可以比較容易的找到,從而實(shí)現(xiàn)ORACLE的良好管理。因此ORACLE的性能價(jià)格比在商用數(shù)據(jù)庫(kù)中是最好的。SYBASESYBASE的價(jià)格是比較低的,但是SYBASE的在企業(yè)和政府中的應(yīng)用較少,很難找到經(jīng)驗(yàn)豐富的管理員,運(yùn)行管理費(fèi)用較高。DB2價(jià)格高,管理員少,在中國(guó)的應(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ù)二次開發(fā)SQLSERVER數(shù)據(jù)庫(kù)的二次開發(fā)工具很多,包括VISUALC,VISUALBASIC等開發(fā)工具,可以實(shí)現(xiàn)很好的WINDOWS應(yīng)用,開發(fā)容易。ORACLE數(shù)據(jù)庫(kù)的二次開發(fā)工具很多,涵蓋了數(shù)據(jù)庫(kù)開發(fā)的各個(gè)階段,開發(fā)容易。SYBASE開發(fā)工具較少,經(jīng)驗(yàn)豐富的人員很少。DB2在國(guó)外巨型企業(yè)得到廣泛的應(yīng)用,中國(guó)的經(jīng)驗(yàn)豐富的人員很少。INFORMIX在銀行業(yè)中得到廣泛的應(yīng)用,但是在中國(guó)的經(jīng)驗(yàn)豐富的人員很少。8存儲(chǔ)過程和函數(shù)的區(qū)別解答從參數(shù)的返回情況來看如果返回多個(gè)參數(shù)值最好使用存儲(chǔ)過程,如果只有一個(gè)返回值的話可以使用函數(shù)。從調(diào)用情況來看如果在SQL語句(DML或SELECT)中調(diào)用的話一定是存儲(chǔ)函數(shù)或存儲(chǔ)的封裝函數(shù)不可以是存儲(chǔ)過程,但調(diào)用存儲(chǔ)函數(shù)的時(shí)候還有好多限制以及函數(shù)的純度等級(jí)的問題,如果是在過程化語句中調(diào)用的話,就要看你要實(shí)現(xiàn)什么樣的功能。函數(shù)一般情況下是用來計(jì)算并返回一個(gè)計(jì)算結(jié)果而存儲(chǔ)過程一般是用來完成特定的數(shù)據(jù)操作(比如修改、插入數(shù)據(jù)庫(kù)表或執(zhí)行某些DDL語句等等),所以雖然他們的語法上很相似但用戶在使用他們的時(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ī)則是說針對(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īng)用中的語義要求。一個(gè)完整性規(guī)則一般由下面三部分組成完整性約束條件設(shè)置,完整性約束條件的檢查以及完整性約束條件的處理后兩部分在數(shù)據(jù)庫(kù)中一般有相應(yīng)的模塊處理。另外觸發(fā)器也可以做完整性的保護(hù),但觸發(fā)器大量用于主動(dòng)性領(lǐng)域。10請(qǐng)說明SQLSERVER中DELETEFROMTABLEA還有STRUTS有一個(gè)控制器,你在STRUTS編程中的控制器XXXACTION都是繼承總的ACTIONSERVLET,它能集中處理請(qǐng)求,然后轉(zhuǎn)到相關(guān)的頁面。還有STRUTS的表單驗(yàn)證組件,不用你寫JS驗(yàn)證了,只需要你配置一下文件就可以了。另外STRUTS的令牌機(jī)制可以防表單重復(fù)提交。SPRING是一個(gè)輕量級(jí)容器,非侵入性包含依賴注入,AOP等。它是為了解決企業(yè)應(yīng)用程序開發(fā)復(fù)雜性而創(chuàng)建的??蚣艿闹饕獌?yōu)勢(shì)之一就是其分層架構(gòu),分層架構(gòu)允許您選擇使用哪一個(gè)組件,同時(shí)為J2EE應(yīng)用程序開發(fā)提供集成的框架。HIBERNATE它可以讓我們以O(shè)O的方式操作數(shù)據(jù)庫(kù),這讓我們看到了HIBERNATE的強(qiáng)大之處,體驗(yàn)到操作數(shù)據(jù)的方便。但HIBERNATE最耀眼之處是HIBERNATE的緩存機(jī)制,而不是以O(shè)O的方式操作數(shù)據(jù)庫(kù)。HIBERNATE的緩存機(jī)制不外乎是一級(jí)緩存SESSION,二級(jí)緩存SESSIONFACTORY,和第三方緩存如EHCACHE。也就是HIBERNATE的最強(qiáng)大的地方是它的緩存,理解了這個(gè)才能真正的理解HIBERNATE,HIBERNATE的命名查詢/命名參數(shù)查詢,就是將HQL語句放在一個(gè)單獨(dú)的XML文件之中,它仍然讓人們以面向?qū)ο蟮姆绞饺ゲ倏v數(shù)據(jù),而不用在以O(shè)O的方式寫著代碼的同時(shí),然后再轉(zhuǎn)變思維,用面向關(guān)系的方式去寫那些SQL語句。但HIBERNATE不僅做了這些,它的NATIVESQL查詢方式,完全滿足SQL語句的偏愛者,它像IBATIS一樣,將SQL語句放在配置文件之中。24說明反轉(zhuǎn)控制(IOC)和面向方向編程(AOP)在SPRING中的應(yīng)用解答SPRING核心容器(CORE)提供SPRING框架的基本功能。核心容器的主要組件是BEANFACTORY,它是工廠模式的實(shí)現(xiàn)。BEANFACTORY使用控制反轉(zhuǎn)(IOC)模式將應(yīng)用程序的配置和依賴性規(guī)范與實(shí)際的應(yīng)用代碼程序分開。SPRING的聲明式事務(wù)基于AOP實(shí)現(xiàn),卻并不需要程序開發(fā)者成為AOP專家,亦可輕易使用SPRING的聲明式事務(wù)管理。25請(qǐng)看如下片段解釋LAZY、INVERSE、CASCADE以及ALLDELETEORPHAN屬性的含義;并給出示例代碼,說明在如下組合情況下,對(duì)于SAVE、UPDATE、DELETE一對(duì)多關(guān)系中的一方對(duì)象操作時(shí)的區(qū)別INVERSECASCADETRUEALLDELETEORPHANFALSEALLDELETEORPHANTRUEALLFALSEALLTRUENONEFALSENONE解答一LAZY延遲加載LAZY的有效期只有在SESSION打開的時(shí)候才有效;SESSION關(guān)閉后LAZY就沒效了。LAZY策略可以用在A標(biāo)簽上可以取值TRUE/FALSEB標(biāo)簽上,可以取值TRUE/FALSE,這個(gè)特性需要類增強(qiáng)C/等集合上,可以取值為TRUE/FALSE/EXTRAD/等標(biāo)簽上,可以取值FALSE/PROXY/NOPROXY1GET和LOAD的區(qū)別AGET不支持延遲加載,而LOAD支持。B當(dāng)查詢特定的數(shù)據(jù)庫(kù)中不存在的數(shù)據(jù)時(shí),GET會(huì)返回NULL,而LOAD則拋出異常。2類CLASS的延遲加載A設(shè)置標(biāo)簽中的LAZY”TRUE”,或是保持默認(rèn)(即不配置LAZY屬性B如果LAZY的屬性值為TRUE,那么在使用LOAD方法加載數(shù)據(jù)時(shí),只有確實(shí)用到數(shù)據(jù)的時(shí)候才會(huì)發(fā)出SQL語句;這樣有可能減少系統(tǒng)的開銷。3集合COLLECTION的延遲加載可以取值TRUE,F(xiàn)ALSE,EXTRAATRUE默認(rèn)取值,它的意思是只有在調(diào)用這個(gè)集合獲取里面的元素對(duì)象時(shí),才發(fā)出查詢語句,加載其集合元素的數(shù)據(jù)BFALSE取消懶加載特性,即在加載對(duì)象的同時(shí),就發(fā)出第二條查詢語句加載其關(guān)聯(lián)集合的數(shù)據(jù)CEXTRA一種比較聰明的懶加載策略,即調(diào)用集合的SIZE/CONTAINS等方法的時(shí)候,HIBERNATE并不會(huì)去加載整個(gè)集合的數(shù)據(jù),而是發(fā)出一條聰明的SQL語句,以便獲得需要的值,只有在真正需要用到這些集合元素對(duì)象數(shù)據(jù)的時(shí)候,才去發(fā)出查詢語句加載所有對(duì)象的數(shù)據(jù)4HIBERNATE單端關(guān)聯(lián)懶加載策略即在/標(biāo)簽上可以配置懶加載策略??梢匀≈禐镕ALSE/PROXY/NOPROXYAFALSE取消懶加載策略,即在加載對(duì)象的同時(shí),發(fā)出查詢語句,加載其關(guān)聯(lián)對(duì)象BPROXY這是HIBERNATE對(duì)單端關(guān)聯(lián)的默認(rèn)懶加載策略,即只有在調(diào)用到其關(guān)聯(lián)對(duì)象的方法的時(shí)候才真正發(fā)出查詢語句查詢其對(duì)象數(shù)據(jù),其關(guān)聯(lián)對(duì)象是代理類CNOPROXY這種懶加載特性需要對(duì)類進(jìn)行增強(qiáng),使用NOPROXY,其關(guān)聯(lián)對(duì)象不是代理類注意在CLASS標(biāo)簽上配置的LAZY屬性不會(huì)影響到關(guān)聯(lián)對(duì)象(二)INVERSEINVERSE是指的關(guān)聯(lián)關(guān)系的控制方向,INVERSEFALSE的SIDE(SIDE其實(shí)是指INVERSEFALSE所位于的CLASS元素)端有責(zé)任維護(hù)關(guān)系,而INVERSETRUE端無須維護(hù)這些關(guān)系(三)CASCADECASCADE指的是層級(jí)之間的連鎖操作。在定義關(guān)聯(lián)對(duì)象的映射時(shí),使用CASCADE”ALL”,CASCADE”SAVEUPDATE”,CASCADE”ALLDELETEORPHAN”或CASCADE”DELETE”A如果父對(duì)象被保存,所有的子對(duì)象會(huì)被傳遞到SAVEORUPDATE方法去執(zhí)行CASCADE”SAVEUPDATE”B如果父對(duì)象被傳遞到UPDATE或者SAVEORUPDATE,所有的子對(duì)象會(huì)被傳遞到SAVEORUPDATE方法去執(zhí)行CASCADE”SAVEUPDATE”C如果一個(gè)臨時(shí)的子對(duì)象被一個(gè)持久化的父對(duì)象引用了,它會(huì)被傳遞到SAVEORUPDATE去執(zhí)行CASCADE”SAVEUPDATE”D如果父對(duì)象被刪除了,所有的子對(duì)象對(duì)被傳遞到DELETE方法執(zhí)行CASCADE”DELETE”E如果臨時(shí)的子對(duì)象不再被持久化的父對(duì)象引用,什么都不會(huì)發(fā)生(必要時(shí),程序應(yīng)該明確的刪除這個(gè)子對(duì)象),除非聲明了CASCADE”ALLDELETEORPHAN”,在這種情況下,成為“孤兒”的子對(duì)象會(huì)被刪除。四SAVE、UPDATE、DELETE一對(duì)多關(guān)系中的一方對(duì)象操作時(shí)的區(qū)別1)當(dāng)一方設(shè)置INVERSETRUE時(shí),所有由一方發(fā)出的操作都不會(huì)關(guān)聯(lián)到多方。2當(dāng)一方設(shè)置INVERSEFALSE,CASCADEALLDELETEORPHAN時(shí),將刪除不再和一方對(duì)象關(guān)聯(lián)的所有多方對(duì)象。3)當(dāng)一方設(shè)置INVERSEFALSE,CASCADEALL時(shí),當(dāng)保存和刪除一方對(duì)象時(shí),級(jí)聯(lián)保存和刪除所有關(guān)聯(lián)的多方對(duì)象。4)當(dāng)一方設(shè)置INVERSEFALSE,CASCADENONE時(shí),當(dāng)對(duì)一方操作時(shí),不級(jí)聯(lián)到關(guān)聯(lián)的多方對(duì)象。26簡(jiǎn)單說明什么是遞歸什么情況會(huì)使用并使用JAVA實(shí)現(xiàn)一個(gè)簡(jiǎn)單的遞歸程序。解答1)遞歸做為一種算法在程序設(shè)計(jì)語言中廣泛應(yīng)用是指函數(shù)/過程/子程序在運(yùn)行過程中直接或間接調(diào)用自身而產(chǎn)生的重入現(xiàn)象。2)遞歸算法一般用于解決三類問題A數(shù)據(jù)的定義是按遞歸定義的。FIBONACCI(斐波那契)函數(shù)B問題解法按遞歸算法實(shí)現(xiàn)?;厮軨數(shù)據(jù)的結(jié)構(gòu)形式是按遞歸定義的。樹的遍歷,圖的搜索3)這是一個(gè)排列的例子,它所做的工作是將輸入的一個(gè)字符串中的所有元素進(jìn)行排序并輸出,例如你給出的參數(shù)是”ABC”則程序會(huì)輸出ABCACBBACBCACABCBAA算法的出口在于也就是現(xiàn)在給出的排列元素只有一個(gè)時(shí)。B算法的逼近過程先確定排列的第一位元素,也就是循環(huán)中所代表的元素,然后開始減少排列元素,如此下去,直到PUBLICCLASSFOOPUBLICSTATICVOIDMAINSTRINGARGSPERMUTE“ABC”PUBLICSTATICVOIDPERMUTESTRINGSTRCHARSTRARRAYSTRTOCHARARRAYPERMUTESTRARRAY,0,STRARRAYLENGTH1PUBLICSTATICVOIDPERMUTECHARLIST,INTLOW,INTHIGHINTIIFLOWHIGHSTRINGCOUT“”FORI0I操作符,否則將引擎放棄使用索引而進(jìn)行全表掃描。B應(yīng)盡量避免在WHERE子句中使用OR來連接條件,否則將導(dǎo)致引擎放棄使用索引而進(jìn)行全表掃描,如SELECTIDFROMTWHERENUM10ORNUM20可以這樣查詢SELECTIDFROMTWHERENUM10UNIONALLSELECTIDFROMTWHERENUM20CIN和NOTIN也要慎用,否則會(huì)導(dǎo)致全表掃描,如SELECTIDFROMTWHERENUMIN1,2,3對(duì)于連續(xù)的數(shù)值,能用BETWEEN就不要用IN了SELECTIDFROMTWHERENUMBETWEEN1AND3D下面的查詢也將導(dǎo)致全表掃描SELECTIDFROMTWHERENAMELIKEABCE如果在WHERE子句中使用參數(shù),也會(huì)導(dǎo)致全表掃描。因?yàn)镾QL只有在運(yùn)行時(shí)才會(huì)解析局部變量,但優(yōu)化程序不能將訪問計(jì)劃的選擇推遲到運(yùn)行時(shí);它必須在編譯時(shí)進(jìn)行選擇。然而,如果在編譯時(shí)建立訪問計(jì)劃,變量的值還是未知的,因而無法作為索引選擇的輸入項(xiàng)。如下面語句將進(jìn)行全表掃描SELECTIDFROMTWHERENUMNUM可以改為強(qiáng)制查詢使用索引SELECTIDFROMTWITHINDEX索引名WHERENUMNUMF應(yīng)盡量避免在WHERE子句中對(duì)字段進(jìn)行表達(dá)式操作,這將導(dǎo)致引擎放棄使用索引而進(jìn)行全表掃描。如SELECTIDFROMTWHERENUM/2100應(yīng)改為SELECTIDFROMTWHERENUM1002G應(yīng)盡量避免在WHERE子句中對(duì)字段進(jìn)行函數(shù)操作,這將導(dǎo)致引擎放棄使用索引而進(jìn)行全表掃描。如SELECTIDFROMTWHERESUBSTRINGNAME,1,3ABCNAME以ABC開頭的IDSELECTIDFROMTWHEREDATEDIFFDAY,CREATEDATE,20051130020051130生成的ID應(yīng)改為SELECTIDFROMTWHERENAMELIKEABCSELECTIDFROMTWHERECREATEDATE20051130ANDCREATEDATE發(fā)郵件44請(qǐng)說明META標(biāo)簽的作用。解答META是用來在HTML文檔中模擬HTTP協(xié)議的響應(yīng)頭報(bào)文。META標(biāo)簽用于網(wǎng)頁的HEAD與/HEAD中,META標(biāo)簽的用處很多。META的屬性有兩種NAME和HTTPEQUIV。NAME屬性主要用于描述網(wǎng)頁,對(duì)應(yīng)于CONTENT(網(wǎng)頁內(nèi)容),以便于搜索引擎機(jī)器人查找、分類(目前幾乎所有的搜索引擎都使用網(wǎng)上機(jī)器人自動(dòng)查找META值來給網(wǎng)頁分類)。這其中最重要的是DESCRIPTION(站點(diǎn)在搜索引擎上的描述)和KEYWORDS(分類關(guān)鍵詞),所以應(yīng)該給每頁加一個(gè)META值。比較常用的有以下幾個(gè)NAME屬性1METANAME”GENERATOR”CONTECT”“用以說明生成工具(如MICROSOFTFRONTPAGE40)等;2METANAME”KEYWORDS”CONTECT”“向搜索引擎說明你的網(wǎng)頁的關(guān)鍵詞;3METANAME”DESCRIPTION”CONTECT”“告訴搜索引擎你的站點(diǎn)的主要內(nèi)容;4METANAME”AUTHOR”CONTECT”你的姓名”告訴搜索引擎你的站點(diǎn)的制作的作者;5METANAME”ROBOTS”CONTECT“ALL|NONE|INDEX|NOINDEX|FOLLOW|NOFOLLOW”其中的屬性說明如下設(shè)定為ALL文件將被檢索,且頁面上的鏈接可以被查詢;設(shè)定為NONE文件將不被檢索,且頁面上的鏈接不可以被查詢;設(shè)定為INDEX文件將被檢索;設(shè)定為FOLLOW頁面上的鏈接可以被查詢;設(shè)定為NOINDEX文件將不被檢索,但頁面上的鏈接可以被查詢;設(shè)定為NOFOLLOW文件將不被檢索,頁面上的鏈接可以被查詢。6HTTPEQUIV屬性A、METAHTTPEQUIV”CONTENTTYPE”CONTECT”TEXT/HTML”CHARSETGBK”和METAHTTPEQUIV”CONTENTLANGUAGE”CONTECT”ZHCN”用以說明主頁制作所使用的文字以及語言;B、METAHTTPEQUIV”REFRESH”CONTECT”NURLHTTP/YOURLINK”定時(shí)讓網(wǎng)頁在指定的時(shí)間N內(nèi),跳轉(zhuǎn)到頁面HTTP/YOURLINK;C、METAHTTPEQUIV”EXPIRES”CONTECT”MON,12MAY2001002000GMT”可以用于設(shè)定網(wǎng)頁的到期時(shí)間,一旦過期則必須到服務(wù)器上重新調(diào)用。需要注意的是必須使用GMT時(shí)間格式;D、METAHTTPEQUIV”PRAGMA”CONTECT”NOCACHE”是用于設(shè)定禁止瀏覽器從本地機(jī)的緩存中調(diào)閱頁面內(nèi)容,設(shè)定后一旦離開網(wǎng)頁就無法從CACHE中再調(diào)出;E、METAHTTPEQUIV”SETCOOKIE”CONTECT”MON,12MAY2001002000GMT”COOKIE設(shè)定,如果網(wǎng)頁過期,存盤的COOKIE將被刪除。需要注意的也是必須使用GMT時(shí)間格式;F、METAHTTPEQUIV”PICSLABEL”CONTECT”“網(wǎng)頁等級(jí)評(píng)定,在IE的INTERNET選項(xiàng)中有一項(xiàng)內(nèi)容設(shè)置,可以防止瀏覽一些受限制的網(wǎng)站,而網(wǎng)站的限制級(jí)別就是通過META屬性來設(shè)置的;G、METAHTTPEQUIV”WINDOWSTARGET”CONTECT”_TOP”強(qiáng)制頁面在當(dāng)前窗口中以獨(dú)立頁面顯示,可以防止自己的網(wǎng)頁被別人當(dāng)作一個(gè)FRAME頁調(diào)用;H、METAHTTPEQUIV”PAGEENTER”CONTECT”REVEALTRANSDURATION10,TRANSTION50”和METAHTTPEQUIV”PAGEEXIT”CONTECT”REVEALTRANSDURATION20,TRANSTION6”設(shè)定進(jìn)入和離開頁面時(shí)的特殊效果,這個(gè)功能即FRONTPAGE中的“格式/網(wǎng)頁過渡”,不過所加的頁面不能夠是一個(gè)FRAME頁面。45請(qǐng)寫出一個(gè)隱藏控件。解答46如何將HTML頁面的標(biāo)題設(shè)置為“數(shù)字天堂”。解答數(shù)字天堂BODY部分47請(qǐng)寫出JAVASCRIPT中常用的三種事件。解答ONCLICK,ONBLUR,ONCHANGE48請(qǐng)寫出一段JAVASCRIPT代碼,要求頁面有一個(gè)按鈕,點(diǎn)擊按鈕彈出確認(rèn)框。程序可以判斷出用戶點(diǎn)擊的是“確認(rèn)”還是“取消”。解答CLICKFUNCTIONVALIDATEFORMIFCONFIRM“你確認(rèn)提交這個(gè)表單么”ALERT“確定”ELSEALERT“取消”49JAVASCRIPT如何實(shí)現(xiàn)計(jì)時(shí)功能。解答WINDOWSETTIMEOUT“WINDOWLOCATIONHTTP/WWWCSDNNET“,3500050JAVASCRIPT如何定義數(shù)組。解答VARARRTESTNEWARRAY51JAVASCRIPT能否操作COOKIE和SESSION解答JAVASCRIPT可以操作COOKIE,但是不能操作SESSION52請(qǐng)寫出如下正則表達(dá)式的含義;COMCNNETHTTP/WWWDHEAVENCOM/HTTP/WWWSINACOMCN/NEW/NEWIDD解答COMCNNET表示匹配COM或是CN或是NET中一個(gè)HTTP/WWWDHEAVENCOM/表示匹配HTTP/WWWDHEAVENCOM/HTTP/WWWSINACOMCN/NEW/NEWIDD表示匹配HTTP/WWWSINACOMCN/NEW/NEWID其后可以出現(xiàn)1到多個(gè)數(shù)字53請(qǐng)用正則表達(dá)式匹配出QQ號(hào)(假設(shè)QQ號(hào)碼為510位);解答D5,1054STRING,STRINGBUFFERSTRINGBUILDER的區(qū)別。解答STRING的長(zhǎng)度是不可變的;STRINGBUFFER的長(zhǎng)度是可變的,如果你對(duì)字符串中的內(nèi)容經(jīng)常進(jìn)行操作,特別是內(nèi)容要修改時(shí),那么使用STRINGBUFFER,如果最后需要STRING,那么使用STRINGBUFFER的TOSTRING方法;線程安全;STRINGBUILDER是從JDK5開始,為STRINGBUFFER該類補(bǔ)充了一個(gè)單個(gè)線程使用的等價(jià)類;通常應(yīng)該優(yōu)先使用STRINGBUILDER類,因?yàn)樗С炙邢嗤牟僮?,但由于它不?zhí)行同步,所以速度更快。55請(qǐng)寫出5種常見到的RUNTIMEEXCEPTION。解答NULLPOINTEREXCEPTION當(dāng)操作一個(gè)空引用時(shí)會(huì)出現(xiàn)此錯(cuò)誤。NUMBERFORMATEXCEPTION數(shù)據(jù)格式轉(zhuǎn)換出現(xiàn)問題時(shí)出現(xiàn)此異常。CLASSCASTEXCEPTION強(qiáng)制類型轉(zhuǎn)換類型不匹配時(shí)出現(xiàn)此異常。ARRAYINDEXOUTOFBOUNDSEXCEPTION數(shù)組下標(biāo)越界,當(dāng)使用一個(gè)不存在的數(shù)組下標(biāo)時(shí)出現(xiàn)此異常。ARITHMETICEXCEPTION數(shù)學(xué)運(yùn)行錯(cuò)誤時(shí)出現(xiàn)此異常56數(shù)組有沒有LENGTH這個(gè)方法STRING有沒有LENGTH這個(gè)方法解答數(shù)組沒有LENGTH()方法它有LENGTH屬性STRING有LENGTH()方法。57請(qǐng)寫出一個(gè)單例模式。解答單例模式(SINGLETONPATTERN)確保一個(gè)類只有一個(gè)實(shí)例,并提供一個(gè)全局的訪問點(diǎn)PUBLICCLASSEAGERSINGLETONPRIVATESTATICFINALEAGERSINGLETONM_INSTANCENEWEAGERSINGLETON/私有的默認(rèn)構(gòu)造子/PRIVATEEAGERSINGLETON/靜態(tài)工廠方法/PUBLICSTATICEAGERSINGLETONGETINSTANCERETURNM_INSTANCE58在JAVA中,LIST是個(gè)接口,那實(shí)現(xiàn)LIST接口的類有哪些,有什么區(qū)別解答ARRAYLIST是使用數(shù)組方式存儲(chǔ)數(shù)據(jù),此數(shù)組元素?cái)?shù)大于實(shí)際存儲(chǔ)的數(shù)據(jù)以便增加和插入元素,它們都允許直接按序號(hào)索引元素,但是插入元素要涉及數(shù)組元素移動(dòng)等內(nèi)存操作,所以索引數(shù)據(jù)快而插入數(shù)據(jù)慢,LINKEDLIST使用雙向鏈表實(shí)現(xiàn)存儲(chǔ),按序號(hào)索引數(shù)據(jù)需要進(jìn)行前向或后向遍歷,但是插入數(shù)據(jù)時(shí)只需要記錄本項(xiàng)的前后項(xiàng)即可,所以插入速度較快。59CHAR類型能否存儲(chǔ)一個(gè)中文字符為什么解答可以。一個(gè)CHAR是兩個(gè)字節(jié),而一個(gè)中文也是兩個(gè)字節(jié)。60SWITCH選擇語句能否作用在STRING【字符串】上,也就是能否這么寫SWITCH一個(gè)字符串變量解答不可以,只能處理INT,BYTE,SHORT,CHAR,(其實(shí)是只能處理INT,其它三種是可以PROMOTION到INT型)不能處理SRING。61關(guān)鍵字FINAL分別修飾一個(gè)類,一個(gè)方法,一個(gè)變量,各起什么作用解答FINAL修飾類是不能被繼承FIANL修飾方法不能在子類中被覆蓋FINAL修飾變量,稱為常量,初始化以后不能改變值。62啟動(dòng)一個(gè)線程是用RUN還是START解答START()。63是否可以繼承STRING類解答不可以。因?yàn)镾TRING類有FINAL修飾。64JAVA異常處理中,TRY里有一個(gè)RETURN語句,那么緊跟在這個(gè)TRY后的FINALLY里的CODE會(huì)不會(huì)被執(zhí)行,什么時(shí)候被執(zhí)行,在RETURN前還是后解答會(huì)執(zhí)行,在RETURN前執(zhí)行。65EJB包含哪3種BEAN解答SESSIONBEAN(會(huì)話BEAN),ENTITYBEAN(實(shí)體BEAN),MESSAGEBEAN(消息BEAN)66CLASSFORNAME(STRINGCLASSNAME)這個(gè)方法的作用解答通過類的全名獲得該類的類對(duì)象67你認(rèn)為在表上建立索引可以提高數(shù)據(jù)庫(kù)系統(tǒng)的效率嗎,為什么解答不一定建立太多的索引將會(huì)影響更新和插入的速度,因?yàn)樗枰瑯痈旅總€(gè)索引文件。對(duì)于一個(gè)經(jīng)常需要更新和插入的表格,就沒有必要為一個(gè)很少使用的WHERE子句單獨(dú)建立索引了,對(duì)于比較小的表,排序的開銷不會(huì)很大,也沒有必要建立另外的索引。68HIBERNATE中的JAVA對(duì)象有幾種狀態(tài),其相互關(guān)系如何(區(qū)別和相互轉(zhuǎn)換)。解答在HIBERNATE中,對(duì)象有三種狀態(tài)臨時(shí)狀態(tài)、持久狀態(tài)和游離狀態(tài)。臨時(shí)狀態(tài)當(dāng)NEW一個(gè)實(shí)體對(duì)象后,這個(gè)對(duì)象處于臨時(shí)狀態(tài),即這個(gè)對(duì)象只是一個(gè)保存臨時(shí)數(shù)據(jù)的內(nèi)存區(qū)域,如果沒有變量引用這個(gè)對(duì)象,則會(huì)被JRE垃圾回收機(jī)制回收。這個(gè)對(duì)象所保存的數(shù)據(jù)與數(shù)據(jù)庫(kù)沒有任何關(guān)系,除非通過SESSION的SAVE或者SAVEORUPDATE把臨時(shí)對(duì)象與數(shù)據(jù)庫(kù)關(guān)聯(lián),并把數(shù)據(jù)插入或者更新到數(shù)據(jù)庫(kù),這個(gè)對(duì)象才轉(zhuǎn)換為持久對(duì)象;持久狀態(tài)持久化對(duì)象的實(shí)例在數(shù)據(jù)庫(kù)中有對(duì)應(yīng)的記錄,并擁有一個(gè)持久化表示(ID)。對(duì)持久化對(duì)象進(jìn)行DELETE操作后,數(shù)據(jù)庫(kù)中對(duì)應(yīng)的記錄將被刪除,那么持久化對(duì)象與數(shù)據(jù)庫(kù)記錄不再存在對(duì)應(yīng)關(guān)系,持久化對(duì)象變成臨時(shí)狀態(tài)。持久化對(duì)象被修改變更后,不會(huì)馬上同步到數(shù)據(jù)庫(kù),直到數(shù)據(jù)庫(kù)事務(wù)提交。在同步之前,持久化對(duì)象是臟的(DIRTY)。游離狀態(tài)當(dāng)SESSION進(jìn)行了CLOSE、CLEAR或者EVICT后,持久化對(duì)象雖然擁有持久化標(biāo)識(shí)符和與數(shù)據(jù)庫(kù)對(duì)應(yīng)記錄一致的值,但是因?yàn)闀?huì)話已經(jīng)消失,對(duì)象不在持久化管理之內(nèi),所以處于游離狀態(tài)(也叫脫管狀態(tài))。游離狀態(tài)的對(duì)象與臨時(shí)狀態(tài)對(duì)象是十分相似的,只是它還含有持久化標(biāo)識(shí)。69對(duì)HIBERNATE的延遲加載如何理解,在實(shí)際應(yīng)用中,延遲加載與SESSION關(guān)閉的矛盾是如何處理的解答延遲加載就是并不是在讀取的時(shí)候就把數(shù)據(jù)加載進(jìn)來,而是等到使用時(shí)再加載。那么HIBERNATE是怎么知識(shí)用戶在什么時(shí)候使用數(shù)據(jù)了呢又是如何加載數(shù)據(jù)呢其實(shí)很簡(jiǎn)單,它使用了代理機(jī)制。返回給用戶的并不是實(shí)體本身,而是實(shí)體對(duì)象的代理。代理對(duì)象在用戶調(diào)用GETTER方法時(shí)就會(huì)去數(shù)據(jù)庫(kù)加載數(shù)據(jù)。但加載數(shù)據(jù)就需要數(shù)據(jù)庫(kù)連接。而當(dāng)我們把會(huì)話關(guān)閉時(shí),數(shù)據(jù)庫(kù)連接就同時(shí)關(guān)閉了。這種情況就叫做未初始化的關(guān)系。延遲加載與SESSION關(guān)閉的矛盾一般可以這樣處理1、關(guān)閉延遲加載特性。操作起來比較簡(jiǎn)單,因?yàn)镠IBERNATE的延遲加載特性是在HBM配置里面可控制的。默認(rèn)LAZY”TRUE”,具體配置可以查看一下相關(guān)文檔,就不詳細(xì)敘述了。但使用這個(gè)解決辦法帶來的隱患是十分大的。首先,出現(xiàn)NOSESSIONORSESSIONWASCLOSED就證明了您已經(jīng)在使用外鍵關(guān)聯(lián)表,如果去掉延遲加載的話,則表示每次查詢的開銷都會(huì)變得十分的大,如果關(guān)聯(lián)表越多,后果也可以想象得到。所以不建議使用這個(gè)方法解決。2、在SESSION關(guān)閉之前把我們想要查詢的數(shù)據(jù)先獲取了。首先需要了解一下SESSION什么時(shí)候關(guān)閉,也就是它的生命周期。通常情況下HIBERNATE會(huì)在查詢數(shù)據(jù)關(guān)閉SESSION,而使用GETHIBERNATETEMPLATEGET方法查詢后會(huì)延遲關(guān)閉的時(shí)間。會(huì)在事務(wù)結(jié)束后才關(guān)閉。使用攔截器INTERCEPTOR或過濾器FILTER控制SESSION。SPRING為解決HIBERNATE這一特性提供的解決方案,可以有效的控制SESSION生命周期。70什么是AOP和OOP,IOC和DI有什么不同解答1)面向?qū)ο缶幊蹋∣BJECTORIENTEDPROGRAMMING,OOP,面向?qū)ο蟪绦蛟O(shè)計(jì))是一種計(jì)算機(jī)編程架構(gòu)。AOP是OOP的延續(xù),是ASPECTORIENTEDPROGRAMMING的縮寫,意思是面向方面編程。將通用需求功能從不相關(guān)類之中分離出來;同時(shí),能夠使得很多類共享一個(gè)行為,一旦行為發(fā)生變化,不必修改很多類,只要修改這個(gè)行為就可以。AOP就是這種實(shí)現(xiàn)分散關(guān)注的編程方法,它將“關(guān)注”封裝在“方面”中2)控制反轉(zhuǎn)IOCINVERSIONOFCONTROL控制指的就是程序相關(guān)類之間的依賴關(guān)系傳統(tǒng)觀念設(shè)計(jì)中,通常由調(diào)用者來創(chuàng)建被調(diào)用者的實(shí)例,在SPRING里,創(chuàng)建被調(diào)用者的工作不再由調(diào)用者來完成,而是由SPRING容器完成,依賴關(guān)系被反轉(zhuǎn)了,稱為控制反轉(zhuǎn),目的是為了獲得更好的擴(kuò)展性和良好的可維護(hù)性。依賴注入DEPENDENCYINJECTION創(chuàng)建被調(diào)用者的工作由SPRING容器完成,然后注入調(diào)用者,因此也稱依賴注入。控制反轉(zhuǎn)和依賴注入是同一個(gè)概念。71STRUTS1中ACTIONFORM和ACTION屬于MVC哪一層,為什么解答ACTIONFORM和ACTION屬于MVC的MODEL層,ACTION用來處理業(yè)務(wù)邏輯,ACTIONFORM保存用戶表單數(shù)據(jù)以便于在不同頁面間傳遞。而MVC中的MODEL層就是業(yè)務(wù)邏輯層,該層用于實(shí)現(xiàn)具體的業(yè)務(wù)邏輯、狀態(tài)維護(hù)及管理。73ERROR和EXCEPTION有什么區(qū)別解答ERROR表示系統(tǒng)級(jí)的錯(cuò)誤和程序不必處理的異常,是恢復(fù)不是不可能但很困難的情況下的一種嚴(yán)重問題;比如內(nèi)存溢出,不可能指望程序能處理這樣的情況;EXCEPTION表示需要捕捉或者需要程序進(jìn)行處理的異常,是一種設(shè)計(jì)或?qū)崿F(xiàn)問題;也就是說,它表示如果程序運(yùn)行正常,從不會(huì)發(fā)生的情況。74LOG4J是APACHE組織的開源一個(gè)開源項(xiàng)目,通過LOG4J,可以指定日志信息輸出的目的地,如CONSOLE、FILE等。LOG4J采用日志級(jí)別機(jī)制,請(qǐng)按照輸出級(jí)別由低到高的順序?qū)懗鋈罩据敵黾?jí)別。解答LOG4J分為OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定義的級(jí)別。LOG4J建議只使用四個(gè)級(jí)別,優(yōu)先級(jí)從高到低分別是ERROR、WARN、INFO、DEBUG。通過在這里定義的級(jí)別,您可以控制到應(yīng)用程序中相應(yīng)級(jí)別的日志信息的開關(guān)。比如在這里定義了INFO級(jí)別,則應(yīng)用程序中所有DEBUG級(jí)別的日志信息將不被打印出來。75說出幾個(gè)與SPRING同類型的開源框架,說出幾個(gè)與HIBERNATE同類型的開源框架,說出幾個(gè)與STRUTS同類型的開源框架解答1)與SPRING同類型的開源框架JUIDE、EJB30、PICOCONTAINER2)與HIBERNATE同類型的開源框架IBATIS,JDO,JPA3)幾個(gè)與STRUTS同類型的開源框架WEBWORK,TAPESTRY,JSF76、STRUTS2包含哪些標(biāo)簽解答A超鏈接,類似于HTML里的執(zhí)行一個(gè)VIEW里面的一個(gè)ACTION如果ACTION的ERRORS有值那么顯示出來如果ACTION的MESSAGE有值那么顯示出來添加一個(gè)值到LIST,類似于LISTADD自動(dòng)完成標(biāo)簽的內(nèi)容,這個(gè)是AJAXB類似于STRUTS1X中的,JAVABEAN的值C復(fù)選框多選框下拉框圖像符號(hào)D獲取日期格式日期輸入框顯示錯(cuò)誤信息表示一個(gè)塊,類似于HTML的雙下拉框E這3個(gè)標(biāo)簽一起使用,表示條件判斷F顯示文件錯(cuò)誤信息文件上傳獲取相應(yīng)FORM的值G和標(biāo)簽一起使用H在里使用,表示頭文件結(jié)束隱藏值I加載資源包到值堆棧包含一個(gè)輸出,SERVLET或JSP頁面獲取FORM的一個(gè)輸入用于遍歷集合L只讀的標(biāo)簽M合并遍歷集合出來的值O獲取標(biāo)簽組左右選擇框P為其他標(biāo)簽提供參數(shù)密碼輸入框得到VALUE的屬性VALUE的值PUSH到棧中,從而使PROPERTY標(biāo)簽的能夠獲取VALUE的屬性R單選按鈕重置按鈕S單選框賦予變量一個(gè)特定范圍內(nèi)的值通過屬性給LIST分類提交按鈕為遍歷集合輸出子集T表格框表格I18N文本信息文本域輸入框文本輸入框攔截器樹樹的結(jié)構(gòu)U多選擇框創(chuàng)建URL77、STRUTS2中,OGNL訪問值棧的時(shí)候查找的順序是什么請(qǐng)排序模型對(duì)象、臨時(shí)對(duì)象、固定名稱的對(duì)象、ACTION對(duì)象解答STRUTS2的值棧排列順序?yàn)?)臨時(shí)對(duì)象;2)模型對(duì)象;3)ACTION對(duì)象;4)固定名稱對(duì)象(如APPLICATION,SESSION,REQUEST等對(duì)象)。78、STRUTS2中,ACTION通過什么方式獲得用戶從頁面輸入的數(shù)據(jù),又是通過什么方式把其自身的數(shù)據(jù)傳給視圖的解答1)可以直接通過與表單元素相同名稱的數(shù)據(jù)成員(需要存在符合命名規(guī)范SET和GET方法)獲取頁面表單數(shù)據(jù)。2)會(huì)把處理好的數(shù)據(jù)成員放入值棧中,到頁面可以使用STRUTS2標(biāo)簽取值就可以了。79常用的設(shè)計(jì)模式有哪些說明工廠模式。解答JAVA中的23種設(shè)計(jì)模式FACTORY(工廠模式),BUILDER(建造模式),F(xiàn)ACTORYMETHOD(工廠方法模式),PROTOTYPE(原始模型模式),SINGLETON(單例模式),FACADE(門面模式),ADAPTER(適配器模式),BRIDGE(橋梁模式),COMPOSITE(合成模式),DECORATOR(裝飾模式),F(xiàn)LYWEIGHT(享元模式),PROXY(代理模式),COMMAND(命令模式),INTERPRETER(解釋器模式),VISITOR(訪問者模式),ITERATOR(迭代子模式),MEDIATOR(調(diào)停者模式),MEMENTO(備忘錄模式),OBSERVER(觀察者模式),STATE(狀態(tài)模式),STRATEGY(策略模式),TEMPLATEMETHOD(模板方法模式),CHAINOFRESPONSIBLEITY(責(zé)任鏈模式)工廠模式工廠模式是一種經(jīng)常被使用到的模式,根據(jù)工廠模式實(shí)現(xiàn)的類可以根據(jù)提供的數(shù)據(jù)生成一組類中某一個(gè)類的實(shí)例,通常這一組類有一個(gè)公共的抽象父類并且實(shí)現(xiàn)了相同的方法,但是這些方法針對(duì)不同的數(shù)據(jù)進(jìn)行了不同的操作。首先需要定義一個(gè)基類,該類的子類通過不同的方法實(shí)現(xiàn)了基類中的方法。然后需要定義一個(gè)工廠類,工廠類可以根據(jù)條件生成不同的子類實(shí)例。當(dāng)?shù)玫阶宇惖膶?shí)例后,開發(fā)人員可以調(diào)用基類中的方法而不必考慮到底返回的是哪一個(gè)子類的實(shí)例。80什么是數(shù)據(jù)庫(kù)的參照完整性解答數(shù)據(jù)庫(kù)的參照完整性是指表與表之間的一種對(duì)應(yīng)關(guān)系,通常情況下可以通過設(shè)置兩表之間的主鍵、外鍵關(guān)系,或者編寫兩表的觸發(fā)器來實(shí)現(xiàn)。有對(duì)應(yīng)參照完整性的兩張表格,在對(duì)他們進(jìn)行數(shù)據(jù)插入、更新、刪除的過程中,系統(tǒng)都會(huì)將被修改表格與另一張對(duì)應(yīng)表格進(jìn)行對(duì)照,從而阻止一些不正確的數(shù)據(jù)的操作。81如何優(yōu)化數(shù)據(jù)庫(kù),如何提高數(shù)據(jù)庫(kù)的性能解答1)硬件調(diào)整性能最有可能影響性能的是磁盤和網(wǎng)絡(luò)吞吐量,解決辦法擴(kuò)大虛擬內(nèi)存,并保證有足夠可以擴(kuò)充的空間;把數(shù)據(jù)庫(kù)服務(wù)器上的不必要服務(wù)關(guān)閉掉;把數(shù)據(jù)庫(kù)服務(wù)器和主域服務(wù)器分開;把SQL數(shù)據(jù)庫(kù)服務(wù)器的吞吐量調(diào)為最大;在具有一個(gè)以上處理器的機(jī)器上運(yùn)行SQL。2)調(diào)整數(shù)據(jù)庫(kù)若對(duì)該表的查詢頻率比較高,則建立索引;建立索引時(shí),想盡對(duì)該表的所有查詢搜索操作,按照WHERE選擇條件建立索引,盡量為整型鍵建立為有且只有一個(gè)簇集索引,數(shù)據(jù)在物理上按順序在數(shù)據(jù)頁上,縮短查找范圍,為在查詢經(jīng)常使用的全部列建立非簇集索引,能最大地覆蓋查詢;但是索引不可太多,執(zhí)行UPDATEDELETEINSERT語句需要用于維護(hù)這些索引的開銷量急劇增加;避免在索引中有太多的索引鍵;避免使用大型數(shù)據(jù)類型的列為索引;保證每個(gè)索引鍵值有少數(shù)行。3)使用存儲(chǔ)過程應(yīng)用程序的實(shí)現(xiàn)過程中,能夠采用存儲(chǔ)過程實(shí)現(xiàn)的對(duì)數(shù)據(jù)庫(kù)的操作盡量通過存儲(chǔ)過程來實(shí)現(xiàn),因?yàn)榇鎯?chǔ)過程是存放在數(shù)據(jù)庫(kù)服務(wù)器上的一次性被設(shè)計(jì)、編碼、測(cè)試,并被再次使用,需要執(zhí)行該任務(wù)的應(yīng)用可以簡(jiǎn)單地執(zhí)行存儲(chǔ)過程,并且只返回結(jié)果集或者數(shù)值,這樣不僅可以使程序模塊化,同時(shí)提高響應(yīng)速度,減少網(wǎng)絡(luò)流量,并且通過輸入?yún)?shù)接受輸入,使得在應(yīng)用中完成邏輯的一致性實(shí)現(xiàn)。4)應(yīng)用程序結(jié)構(gòu)和算法建立查詢條件索引僅僅是提高速度的前提條件,響應(yīng)速度的提高還依賴于對(duì)索引的使用。因?yàn)槿藗冊(cè)谑褂肧QL時(shí)往往會(huì)陷入一個(gè)誤區(qū),即太關(guān)注于所得的結(jié)果是否正確,特別是

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論