




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1.J2EE是什么?它包括哪些技術(shù)?
解答:從整體上講,J2EE是運(yùn)用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,供應(yīng)一個(gè)平臺(tái)獨(dú)立的、
可移植的、多用戶(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ù):
1)ServlelServlet是Java平臺(tái)上的CGI技術(shù)。Servlel在服務(wù)器端運(yùn)行,動(dòng)態(tài)地生成Web頁(yè)
面。與傳統(tǒng)的CGI和許多其它類(lèi)似CGI的技術(shù)相比,JavaServlet具有更高的效率并更簡(jiǎn)潔
運(yùn)用。對(duì)于Servlet,重復(fù)的請(qǐng)求不會(huì)導(dǎo)致同一程序的多次轉(zhuǎn)載,它是依靠線(xiàn)程的方式來(lái)支
持并發(fā)訪(fǎng)問(wèn)的。2)JSPJSP(JavaServerPage)是一種實(shí)現(xiàn)一般靜態(tài)HTML和動(dòng)態(tài)頁(yè)面輸出混
合編碼的技術(shù)。從這一點(diǎn)來(lái)看,特殊類(lèi)似MicrosoftASP、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定義了一組可重用的組件:EnterpriseBeans0開(kāi)發(fā)人員可以利用這些組件,像搭積木一
樣建立分布式應(yīng)用。4)JDBC
JDBC(JavaDatabaseConnectivity,Java數(shù)據(jù)庫(kù)連接)API是一個(gè)標(biāo)準(zhǔn)SQL(StructuredQuery
Language,結(jié)構(gòu)化查詢(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)支配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,rationalrose,powerdesigner等
4.什么是Web容器?
解答:容器就是一種服務(wù)程序,在服務(wù)器一個(gè)端口就有一個(gè)供應(yīng)相應(yīng)服務(wù)的程序,而這個(gè)程
序就是處理從客戶(hù)端發(fā)出的請(qǐng)求,如JAVA中的Tomcat容器,ASP的HS或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文件,不看查詢(xún)語(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)有SQLServer.ORACLE>SYBASE.
INFORMIX和DB2。本文從性能,可伸縮性和并行性,平安性,操作簡(jiǎn)便,運(yùn)用風(fēng)險(xiǎn),開(kāi)
放性,易維護(hù)性和價(jià)格,數(shù)據(jù)庫(kù)二次開(kāi)發(fā)方面比較了SQLServer,Oracle>SYBASE、DB2、
INFORMIX數(shù)據(jù)庫(kù):
1)性能
SQLServer:老版本多用戶(hù)時(shí)性能不佳,新版本的性能有了明顯的改善,各項(xiàng)處理實(shí)力都有
了明顯的提高。保持了多項(xiàng)TPC-C(TPC-C值被廣泛用于衡量C/S環(huán)境下,由服務(wù)器和客戶(hù)
端構(gòu)筑的整體系統(tǒng)的性能,它由事物處理性能委員會(huì)(TPC,TransactionProcessingCorp)制
定,TPC為非贏利性國(guó)際組織。)紀(jì)錄。
Oracle:性能最高,保持WindowsNT下的TPC-C的世界記錄。SYBASE:性能較高,
支持Sun、IBM、HP>Compaq和Veritas的集群設(shè)備的特性,實(shí)現(xiàn)高可用性。適應(yīng)于平安性
要求極高的系統(tǒng)。DB2:適用于數(shù)據(jù)倉(cāng)庫(kù)和在線(xiàn)事物處理,性能較高。客戶(hù)端支持及應(yīng)
用模式。INFORMIX:性能較高,支持集群,實(shí)現(xiàn)高可用性。適應(yīng)于平安性要求極高的系
統(tǒng),尤其是銀行,證券系統(tǒng)的應(yīng)用.2)可伸縮性,并行性SQLServer:以前版本SQLServer
并行實(shí)施和共存模型并不成熟。很難處理大量的用戶(hù)數(shù)和數(shù)據(jù)卷。伸縮性有限。新版本性能
有了較大的改善,在MicrosoftAdvancedServers上有突出的表現(xiàn),超過(guò)了他的主要競(jìng)爭(zhēng)對(duì)手。
Oracle:平行服務(wù)器通過(guò)使一組結(jié)點(diǎn)共享同一簇中的工作來(lái)擴(kuò)展WindowNT的實(shí)力,供應(yīng)高
可用性和高伸縮性的簇的解決方案。假如WindowsNT不能滿(mǎn)足須要,用戶(hù)可以把數(shù)據(jù)庫(kù)移
到UNIX中,具有很好的伸縮性。SYBASE:新版本具有較好的并行性,速度快,對(duì)巨量
數(shù)據(jù)無(wú)明顯影響,但是技術(shù)實(shí)現(xiàn)困難,須要程序支持,伸縮性有限。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)程多線(xiàn)程的技術(shù),具有較好的并行性。但是
僅運(yùn)行于UNIX平臺(tái),伸縮性有限。3)平安性SQLserver:MicrosoftAdvancedServer獲
得最高平安認(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:通過(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)便SQLServer:
操作簡(jiǎn)潔,接受圖形界面。管理也很便利,而且編程接口特殊友好(它的SQL-DMO讓編程變
得特殊便利?。瑥囊拙S護(hù)性和價(jià)格上SQLServer明顯占有優(yōu)勢(shì)。Oracle:較困難,同時(shí)
供應(yīng)GUI和叮囑行,在WindowsNT和Unix,Linux下操作相同。對(duì)數(shù)據(jù)庫(kù)管理人員要求
較高。SYBASE:困難,運(yùn)用叮囑行操作,對(duì)數(shù)據(jù)庫(kù)管理人員要求較高。DB2:操作簡(jiǎn)
潔,同時(shí)供應(yīng)GUI和叮囑行,在WindowsNT和Unix下操作相同。INFORMIX:運(yùn)用和管
理困難,叮囑行操作。對(duì)數(shù)據(jù)庫(kù)管理人員要求較高。5)運(yùn)用風(fēng)險(xiǎn)SQLServer:完全重寫(xiě)
的代碼,性能和兼容性有了較大的提高,與Oracle,DB2的性能差距明顯減小。該產(chǎn)品的
出臺(tái)閱歷了長(zhǎng)期的測(cè)試,為產(chǎn)品的平安和穩(wěn)定進(jìn)行了全面的檢測(cè),平平穩(wěn)定性有了明顯的提
高。Oracle:長(zhǎng)時(shí)間的開(kāi)發(fā)閱歷,完全向下兼容,可以平安的進(jìn)行數(shù)據(jù)庫(kù)的升級(jí),在企業(yè),
政府中得到廣泛的應(yīng)用。并且假如在WINNT上無(wú)法滿(mǎn)足數(shù)據(jù)的要求,可以平安的把數(shù)據(jù)轉(zhuǎn)
移到UNIX上來(lái)。
SYBASE:開(kāi)發(fā)時(shí)間較長(zhǎng),升級(jí)較困難,穩(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í)較困難,穩(wěn)定性較好,數(shù)據(jù)平安
有保障。風(fēng)險(xiǎn)小。在平安要求極高的銀行,證券行業(yè)中得到了廣泛的應(yīng)用。6)開(kāi)放性SQL
Server:只能在Windows上運(yùn)行,C/S結(jié)構(gòu),只支持Windows客戶(hù),可以用
ADO,DAO,OLEDB,ODBC連接。Windows9X系列產(chǎn)品是偏重于桌面應(yīng)用,NTserver適合各
種大中小型企業(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í)供應(yīng)了較好的性能。
Oracle:能在全部主流平臺(tái)上運(yùn)行(包括Windows)o完全支持全部的工業(yè)標(biāo)準(zhǔn)。接受完全
開(kāi)放策略。多層次網(wǎng)絡(luò)計(jì)算,支持多種工業(yè)標(biāo)準(zhǔn),可以用ODBCJDBCQCI等網(wǎng)絡(luò)客戶(hù)連接。
可以使客戶(hù)選擇最適合的解決方案。對(duì)開(kāi)發(fā)商全力支持。SYBASE:能在全部主流平臺(tái)上
運(yùn)行,在銀行業(yè)中得到了廣泛的應(yīng)用。DB2:有較好的開(kāi)放性,最適于海量數(shù)據(jù)??缙脚_(tái),
多層結(jié)構(gòu),支持ODBC,JDBC等客戶(hù)。在大型的國(guó)際企業(yè)中得到最為廣泛的應(yīng)用,在全球的
500家最大的企業(yè)中,大部分接受DB2數(shù)據(jù)庫(kù)服務(wù)器。1INFORMIX:僅運(yùn)行在UNIX平臺(tái),
包括SUNOS、HPUX、ALFAOSF/lo在銀行中得到廣泛的應(yīng)用。7)易維護(hù)性和價(jià)格SQL
Server:從易維護(hù)性和價(jià)格上SQLServer明顯占有優(yōu)勢(shì)?;贛icrosoft的一貫風(fēng)格,SQL
Server的圖形管理界面帶來(lái)了明顯的易用性,微軟的數(shù)據(jù)庫(kù)管理員培訓(xùn)進(jìn)行的比較充分,
可以輕松的找到很好的數(shù)據(jù)庫(kù)管理員,數(shù)據(jù)庫(kù)管理費(fèi)用比較低,SQLServer的價(jià)格也是很低
的,但是在License的購(gòu)買(mǎi)上會(huì)抬高價(jià)格。總體來(lái)說(shuō)SQLServer的價(jià)格在商用數(shù)據(jù)庫(kù)中是最
低的。Oracle:從易維護(hù)性和價(jià)格上來(lái)說(shuō)Oracle的價(jià)格是比較高的,管理比較困難,由于
Oracle的應(yīng)用很廣泛,閱歷豐富的Oracle數(shù)據(jù)庫(kù)管理員可以比較簡(jiǎn)潔的找到,從而實(shí)現(xiàn)Oracle
的良好管理。因此Oracle的性能價(jià)格比在商用數(shù)據(jù)庫(kù)中是最好的。SYBASE:SYBASE的
價(jià)格是比較低的,但是SYBASE的在企業(yè)和政府中的應(yīng)用較少,很難找到閱歷豐富的管理
員,運(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)用。閱歷豐富的管理人員較少,運(yùn)行管理費(fèi)用高。8)數(shù)據(jù)庫(kù)二次開(kāi)發(fā)SQL
Server:數(shù)據(jù)庫(kù)的二次開(kāi)發(fā)工具許多,包括VisualC++,VisualBasic等開(kāi)發(fā)工具,可以實(shí)現(xiàn)很
好的Windows應(yīng)用,開(kāi)發(fā)簡(jiǎn)潔。Oracle:數(shù)據(jù)庫(kù)的二次開(kāi)發(fā)工具許多,涵蓋了數(shù)據(jù)庫(kù)開(kāi)發(fā)的
各個(gè)階段,開(kāi)發(fā)簡(jiǎn)潔。SYBASE:開(kāi)發(fā)工具較少,閱歷豐富的人員很少。DB2:在國(guó)外巨型
企業(yè)得到廣泛的應(yīng)用,中國(guó)的閱歷豐富的人員很少。INFORMIX:在銀行業(yè)中得到廣泛的應(yīng)
用,但是在中國(guó)的閱歷豐富的人員很少。
8.存儲(chǔ)過(guò)程和函數(shù)的區(qū)分
解答:
從參數(shù)的返回狀況來(lái)看:
假如返回多個(gè)參數(shù)值最好運(yùn)用存儲(chǔ)過(guò)程,假如只有一個(gè)返回值的話(huà)可以運(yùn)用函數(shù)。
從調(diào)用狀況來(lái)看:
假如在SQL語(yǔ)句(DML或SELECT)中調(diào)用的話(huà)確定是存儲(chǔ)函數(shù)或存儲(chǔ)的封裝函數(shù)不行以
是存儲(chǔ)過(guò)程,但調(diào)用存儲(chǔ)函數(shù)的時(shí)候還有好多限制以及函數(shù)的純度等級(jí)的問(wèn)題,假如是在過(guò)
程化語(yǔ)句中調(diào)用的話(huà),就要看你要實(shí)現(xiàn)什么樣的功能。函數(shù)一般狀況下是用來(lái)計(jì)算并返回一
個(gè)計(jì)算結(jié)果而存儲(chǔ)過(guò)程一般是用來(lái)完成特定的數(shù)據(jù)操作(比如修改、插入數(shù)據(jù)庫(kù)表或執(zhí)行某
些DDL語(yǔ)句等等),所以雖然他們的語(yǔ)法上很相像但用戶(hù)在運(yùn)用他們的時(shí)候所須要完成的
功能大部分狀況下是不同的。
9.試述數(shù)據(jù)庫(kù)完整愛(ài)惜的主要任務(wù)和措施。
解答:數(shù)據(jù)庫(kù)的完整性愛(ài)惜也就是數(shù)據(jù)庫(kù)中數(shù)據(jù)正確性的維護(hù)。數(shù)據(jù)庫(kù)完整性包括三個(gè)內(nèi)容:
實(shí)體完整性規(guī)則,參照物完整性規(guī)則以及用戶(hù)定義完整性規(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)基
表中必存在元組。
用戶(hù)定義完整性規(guī)則針對(duì)詳細(xì)的數(shù)據(jù)環(huán)境由用戶(hù)詳細(xì)設(shè)置的規(guī)則,它反應(yīng)了詳細(xì)應(yīng)用中的語(yǔ)
義要求。一個(gè)完整性規(guī)則一般由下面三部分組成:完整性約束條件設(shè)置,完整性約束條件的檢
查以及完整性約束條件的處理.后兩部分在數(shù)據(jù)庫(kù)中一般有相應(yīng)的模塊處理。另外觸發(fā)器也
可以做完整性的愛(ài)惜,但觸發(fā)器大量用于主動(dòng)性領(lǐng)域。
10.請(qǐng)說(shuō)明SQLServer中deletefromtablea&truncatetabletablea的區(qū)分
解答:兩者都可以用來(lái)刪除表中全部的記錄。區(qū)分在于:truncate是DDL操作,它移動(dòng)HWK,
使HWK值為0,不須要rollbacksegment.而Delete是DML操作須要rollbacksegment且花
費(fèi)較長(zhǎng)時(shí)間.
11.Oracle安裝完成后,如何用叮囑行啟動(dòng)和關(guān)閉數(shù)據(jù)庫(kù)?
解答:
打開(kāi):STARTUP[FORCE][RESTRICT][PFILE=filename][OPEN[RECOVER][database]|
MOUNT|NOMOUNT]STARTUPOPEN:STARTUP缺省的參數(shù)就是OPEN,打開(kāi)數(shù)據(jù)庫(kù),
允許數(shù)據(jù)庫(kù)的訪(fǎng)問(wèn)。當(dāng)前實(shí)例的限制文件中所描述的全部文件都已經(jīng)打開(kāi)。STARTUP
MOUNT:MOUNT數(shù)據(jù)庫(kù),僅僅給DBA進(jìn)行管理操作,不允許數(shù)據(jù)庫(kù)的用戶(hù)訪(fǎng)問(wèn)。僅僅
只是當(dāng)前實(shí)例的限制文件被打開(kāi),數(shù)據(jù)文件未打開(kāi)。STARTUPNOMOUNT:僅僅通過(guò)初
始化文件,支配出SGA區(qū),啟動(dòng)數(shù)據(jù)庫(kù)后臺(tái)進(jìn)程,沒(méi)有打開(kāi)限制文件和數(shù)據(jù)文件。不能訪(fǎng)
問(wèn)任何數(shù)據(jù)庫(kù)。STARTUPPFILE=filename:以filename為初始化文件啟動(dòng)數(shù)據(jù)庫(kù),不是接
受缺省初始化文件。STARTUPFORCE:中止當(dāng)前數(shù)據(jù)庫(kù)的運(yùn)行,并起先重新正常的啟動(dòng)
數(shù)據(jù)庫(kù)。STARTUPRESTRICT:只允許具有RESTRICTEDSESSION權(quán)限的用戶(hù)訪(fǎng)問(wèn)數(shù)據(jù)
庫(kù)。STARTUPRECOVER:數(shù)據(jù)庫(kù)啟動(dòng),并起先介質(zhì)復(fù)原
關(guān)閉
SHUTDOWN有四個(gè)參數(shù):NORMAL、TRANSACTIONAL>IMMEDIATE,ABORT,缺省
不帶任何參數(shù)時(shí)表示是NORMAL0
叮囑SHUTDOWNNORMAL:不允許新的連接、等待會(huì)話(huà)結(jié)束、等待事務(wù)結(jié)束、做一個(gè)檢
查點(diǎn)并關(guān)閉數(shù)據(jù)文件。啟動(dòng)時(shí)不須要實(shí)例復(fù)原。SHUTDOWNTRANSACTIONAL:不允許
新的連接、不等待會(huì)話(huà)結(jié)束、等待事務(wù)結(jié)束、做一個(gè)檢查點(diǎn)并關(guān)閉數(shù)據(jù)文件。啟動(dòng)時(shí)不須要
實(shí)例復(fù)原。SHUTDOWNIMMEDIATE:不允許新的連接、不等待會(huì)話(huà)結(jié)束、不等待事務(wù)
結(jié)束、做一個(gè)檢查點(diǎn)并關(guān)閉數(shù)據(jù)文件。沒(méi)有結(jié)束的事務(wù)是自動(dòng)rollback的。啟動(dòng)時(shí)不須要實(shí)
例復(fù)原。SHUTDOWNABORT:不允許新的連接、不等待會(huì)話(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,DBBufferCache的內(nèi)容寫(xiě)入了數(shù)據(jù)文件,沒(méi)有提交的
事務(wù)被回滾,全部的資源被釋放,數(shù)據(jù)庫(kù)被“干凈”的關(guān)閉。對(duì)于ABORT,DBBufferCache
的內(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ò)redolog復(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)的成員供應(yīng)公有、缺省、愛(ài)惜和私有等多級(jí)訪(fǎng)問(wèn)權(quán)限,目的是隱藏
類(lèi)中的私有變量和類(lèi)中方法的實(shí)現(xiàn)微小環(huán)節(jié)。
繼承性:類(lèi)的繼承性供應(yīng)從已存在的類(lèi)創(chuàng)建新類(lèi)的機(jī)制,繼承(inheritance)使一個(gè)新類(lèi)自
動(dòng)擁有被繼承類(lèi)(父類(lèi))的全部可繼承的成員。
多態(tài)性:類(lèi)的多態(tài)性供應(yīng)類(lèi)中方法執(zhí)行的多樣性,多態(tài)性有兩種表現(xiàn)形式:重載和覆蓋。
13.談?wù)剬?duì)XML的理解?說(shuō)明Web應(yīng)用中Web.xml文件的作用?
解答:XML(ExtensibleMarkupLanguage)即可擴(kuò)展標(biāo)記語(yǔ)言,它與HTML一樣,都是
SGML(StandardGeneralizedMarkupLanguage,標(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ǔ)言,運(yùn)用一系列簡(jiǎn)潔的標(biāo)記描述數(shù)據(jù),而這些標(biāo)記可以用便利的方
式建立,雖然XML占用的空間比二進(jìn)制數(shù)據(jù)要占用更多的空間,但XML極其簡(jiǎn)潔易于駕
馭和運(yùn)用。
web.xml的作用是配置歡迎頁(yè),servlet,filter,listener等的。
14.jsp有哪些內(nèi)置對(duì)象?作用分別是什么?(至少三個(gè))
解答:
□request表示ServletRequest對(duì)象。它包含了有關(guān)閱讀器請(qǐng)求的信息,并且供應(yīng)了幾個(gè)
用于獲得cookie,header和session數(shù)據(jù)的有用的方法。2)response表示ServletResponse
對(duì)象,并供應(yīng)了幾個(gè)用于設(shè)置送回閱讀器的響應(yīng)的方法(如cookies,頭信息等)。3)out
對(duì)象是javax.jsp.JspWriler的一個(gè)實(shí)例,并供應(yīng)了幾個(gè)方法使你能用于向閱讀器回送輸出結(jié)
果。4)pageContext表示一個(gè)javax.servlet.jsp.PageContext對(duì)象。它是用于便利存取各種范
圍的名字空間、servlet相關(guān)的對(duì)象的API,并且包裝了通用的servlet相關(guān)功能的方法。5)
session表示一個(gè)請(qǐng)求的javax.servlet..Session對(duì)象。Session可以存貯用戶(hù)的狀態(tài)信
息。6)application表示一個(gè)javax.servle.ServletContext對(duì)象。這有助于查找有關(guān)servlet引
擎和servlet環(huán)境的信息。7)config表示一個(gè)javax.servlet.ServletConfig對(duì)象。該對(duì)象用于
存取servlet實(shí)例的初始化參
數(shù)。8)page表示從該頁(yè)面產(chǎn)生的一個(gè)servlet實(shí)例。
9)exception針對(duì)錯(cuò)誤網(wǎng)頁(yè),未捕獲的例外
15.事務(wù)是什么?有哪些屬性,并簡(jiǎn)要說(shuō)明這些屬性的含義。
解答:事務(wù)(Transaction)是訪(fǎng)問(wèn)并可能更新數(shù)據(jù)庫(kù)中各種數(shù)據(jù)項(xiàng)的一個(gè)程序執(zhí)行單元(unit)。
事務(wù)通常由高級(jí)數(shù)據(jù)庫(kù)操縱語(yǔ)言或編程語(yǔ)言(如SQL,C++或Java)書(shū)寫(xiě)的用戶(hù)程序的執(zhí)行
所引起,并用形如begintransaction和endtransaction語(yǔ)句(或函數(shù)調(diào)用)來(lái)界定。事務(wù)由事
務(wù)起先(begintransaction)和事務(wù)結(jié)束(endtransaction)之間執(zhí)行的全體操作組成。
事務(wù)應(yīng)當(dā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)部的操作及運(yùn)用的
數(shù)據(jù)對(duì)并發(fā)的其他事務(wù)是隔離的,并發(fā)執(zhí)行的各個(gè)事務(wù)之間不能相互干擾。
許久性(durability)?持續(xù)性也稱(chēng)永久性(permanence),指一個(gè)事務(wù)一旦提交,它對(duì)數(shù)據(jù)庫(kù)
中數(shù)據(jù)的變更就應(yīng)當(dāng)是永久性的。接下來(lái)的其他操作或故障不應(yīng)當(dāng)對(duì)其有任何影響。
16、Collection和Collections的區(qū)分?
解答:Collection是java.util下的接口,它是各種集合的父接口,繼承于它的接口主要有Set
和List;Collections是個(gè)java.util下的類(lèi),是針對(duì)集合的幫助類(lèi),供應(yīng)一系列靜態(tài)方法實(shí)現(xiàn)
對(duì)各種集合的搜尋、排序、線(xiàn)程平安化等操作。
17、HashMap與TreeMap的區(qū)分?
解答:HashMap通過(guò)hashcode對(duì)其內(nèi)容進(jìn)行快速查找,而TreeMap中全部的元素都保持著
某種固定的依次,假如你須要得到一個(gè)有序的結(jié)果你就應(yīng)當(dāng)運(yùn)用TreeMap(HashMap中元素
的排列依次是不固定的)。
18、ArrayList和Vector的區(qū)分?
解答:同步性:Vector是線(xiàn)程平安的,也就是說(shuō)是同步的,而ArrayList是線(xiàn)程擔(dān)憂(yōu)全的,不
是同步的;數(shù)據(jù)增長(zhǎng):當(dāng)須要增長(zhǎng)時(shí),Vector默認(rèn)增長(zhǎng)為原來(lái)一培,而ArrayList卻是原來(lái)的一
半。
19、HashMap和Hashtable的區(qū)分?
解答:HashM叩是Hashtable的輕量級(jí)實(shí)現(xiàn)(非線(xiàn)程平安的實(shí)現(xiàn)),他們都實(shí)現(xiàn)了Map接口,
主要區(qū)分
在于HashMap允許空(null)鍵值(key),由于非線(xiàn)程平安,效率上高于Hashtable..HashMap
允許將null作為一個(gè)entry的key或者value,而Hashtable不允許。HashMap把Hashlable
的contains方法去掉了,改成containsvalue和containsKey?因?yàn)閏ontains方法簡(jiǎn)潔讓人引起
誤會(huì)。Hashlable繼承自Dictionary類(lèi),而HashMap是Javal.2引進(jìn)的Mapinterface的一個(gè)實(shí)
現(xiàn)。最大的不同是,Hastable的方法是synchronize的,而HashMap不是,在多個(gè)線(xiàn)程訪(fǎng)問(wèn)
Hashlable時(shí),不須要自己為它的方法實(shí)現(xiàn)同步,而HashMap就必需為之供應(yīng)同步。
20.請(qǐng)說(shuō)出ArrayList,Vector,LinkedList的存儲(chǔ)性能和特性
解答:ArrayList和Vector都是運(yùn)用數(shù)組方式存儲(chǔ)數(shù)據(jù),此數(shù)組元素?cái)?shù)大于實(shí)際存儲(chǔ)的數(shù)據(jù)
以便增加和插入元素,它們都允許干脆按序號(hào)索引元素,但是插入元素要涉及數(shù)組元素移動(dòng)
等內(nèi)存操作,所以索引數(shù)據(jù)快而插入數(shù)據(jù)慢,Vector由于運(yùn)用了synchronized方法(線(xiàn)程平
安),通常性能上較ArrayList差,而LinkedList運(yùn)用雙向鏈表實(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)Presenlationlayer(表示層)
a.表示邏輯(生成界面代碼)
b.接收請(qǐng)求
c.處理業(yè)務(wù)層拋出的異樣
d.負(fù)責(zé)規(guī)則驗(yàn)證(數(shù)據(jù)格式,數(shù)據(jù)非空等)
e.流程限制
2)Servicelayer(服務(wù)層/業(yè)務(wù)層)
a.封裝業(yè)務(wù)邏輯處理,并且對(duì)外暴露接口
b.負(fù)責(zé)事務(wù),平安等服務(wù)
3)Persistencelayer(許久層)
a封裝數(shù)據(jù)訪(fǎng)問(wèn)的邏輯,暴露接口
b.供應(yīng)便利的數(shù)據(jù)訪(fǎng)問(wèn)的方案(查詢(xún)語(yǔ)言,API,映射機(jī)制等)
4)Domainlayer(域?qū)樱?/p>
a.業(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的相識(shí)。
解答:面對(duì)服務(wù)的體系結(jié)構(gòu)(Service-OrienledArchitecture,SOA)是一個(gè)組件模型,它將應(yīng)
用程序的不同功能單元(稱(chēng)為服務(wù))通過(guò)這些服務(wù)之間定義良好的接口和契約聯(lián)系起來(lái)。接
口是接受中立的方式進(jìn)行定義的,它應(yīng)當(dāng)獨(dú)立于實(shí)現(xiàn)服務(wù)的硬件平臺(tái)、操作系統(tǒng)和編程語(yǔ)言。
這使得構(gòu)建在各種這樣的系統(tǒng)中的服務(wù)可以一種統(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,
這樣的話(huà),在action中你再也不須要運(yùn)用傳統(tǒng)的request.getParameter("name");還有struts有
一個(gè)限制器,你在struts編程中的限制器(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ā)困難性而創(chuàng)建的。框架的主要優(yōu)勢(shì)之一就是其分層架構(gòu),分層架構(gòu)允許您選擇運(yùn)用哪一個(gè)
組件,同時(shí)為J2EE應(yīng)用程序開(kāi)發(fā)供應(yīng)集成的框架。
Hibernate:它可以讓我們以00的方式操作數(shù)據(jù)庫(kù),這讓我們看到了hibernate的強(qiáng)大之處,
體驗(yàn)到操作數(shù)據(jù)的便利。但hibernate最刺眼之處是hibernate的緩存機(jī)制,而不是以00的
方式操作數(shù)據(jù)庫(kù)。Hibernate的緩存機(jī)制不外乎是一級(jí)緩存session,二級(jí)緩存sessionFactory,
和第三方緩存如ehcache。也就是hibernate的最強(qiáng)大的地方是它的緩存,理解了這個(gè)才能真
正的理解hibernate,Hibernate的命名查詢(xún)/命名參數(shù)查詢(xún),就是將hql語(yǔ)句放在一個(gè)單獨(dú)的xml
文件之中,它照舊讓人們以面對(duì)對(duì)象的方式去操縱數(shù)據(jù),而不用在以00的方式寫(xiě)著代碼的
同時(shí),然后再轉(zhuǎn)變思維,用面對(duì)關(guān)系的方式去寫(xiě)那些sql語(yǔ)句。但hibernate不僅做了這些,
它的nativesql查詢(xún)方式,完全滿(mǎn)足sql語(yǔ)句的偏愛(ài)者,它像ibatis一樣,將sql語(yǔ)句放在配
置文件之中。
24.說(shuō)明反轉(zhuǎn)限制(I0C)和面對(duì)方向編程(A0P)在spring中的應(yīng)用
解答:Spring核心容器(Core)供應(yīng)Spring框架的基本功能。核心容器的主要組件是
BeanFactory,它是工廠(chǎng)模式的實(shí)現(xiàn)。BeanFactory運(yùn)用限制反轉(zhuǎn)(loc)模式將應(yīng)用程序的配
置和依靠性規(guī)范與實(shí)際的應(yīng)用代碼程序分開(kāi)。Spring的聲明式事務(wù)基于AOP實(shí)現(xiàn),卻并不
須要程序開(kāi)發(fā)者成為AOP專(zhuān)家,亦可輕易運(yùn)用Spring的聲明式事務(wù)管理。
25.請(qǐng)看如下片段:
<setname="address”
lazy="true”
inverse="false”
cascade=aall-delete-orphan>
<keycolumn="USERID"></key>
<one-to-manyclass=ucom.norteksoft.erm.model.Address/>
</set>
說(shuō)明lazy、inverse、cascade以及all-delete-orphan屬性的含義;并給出示例代碼,說(shuō)明在如
下組合狀況下,對(duì)于save、update>delete一對(duì)多關(guān)系中的一方對(duì)象操作時(shí)的區(qū)分:
inverse
cascade
true
ail-delete-orphan
false
all-delete-orphan
true
all
false
all
true
none
false
none
解答:
(一)lazy:延遲加載
Lazy的有效期:只有在session打開(kāi)的時(shí)候才有效;session關(guān)閉后lazy就沒(méi)效了。
lazy策略可以用在:
a.<class>標(biāo)簽上:可以取值true/false
b.〈property〉標(biāo)簽上,可以取值true/false,這個(gè)特性須要類(lèi)增加
c.<set>/<list>等集合上,可以取值為true/false/extra
d.<one-to-one>/<many-to-one>等標(biāo)簽上,可以取值false/proxy/no-proxy
1)get和load的區(qū)分:
a.get不支持延遲加載,而load支持。
b.當(dāng)查詢(xún)特定的數(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,那么在運(yùn)用load方法加載數(shù)據(jù)時(shí),只有確好用到數(shù)據(jù)的時(shí)候
才會(huì)發(fā)
出sql語(yǔ)句;這樣有可能削減系統(tǒng)的開(kāi)銷(xiāo)。
3)集合(collection)的延遲加載:可以取值true,false,extra
a.true:默認(rèn)取值,它的意思是只有在調(diào)用這個(gè)集合獲得里面的元素對(duì)象時(shí),才發(fā)出查詢(xún)語(yǔ)句,
加載其集合元素的數(shù)據(jù)
b.false:取消懶加載特性,即在加載對(duì)象的同時(shí),就發(fā)出其次條查詢(xún)語(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ā)出查詢(xún)語(yǔ)句加載全部對(duì)象的數(shù)據(jù)
4)Hibernate單端關(guān)聯(lián)懶加載策略:即在<one-to-one>/<many-to-one>標(biāo)簽上可以配置
懶加載策略??梢匀≈禐椋篺alse/proxy/no-proxy
a.false:取消懶加載策略,即在加載對(duì)象的同時(shí),發(fā)出查詢(xún)語(yǔ)句,加載其關(guān)聯(lián)對(duì)象
xy:這是hibernate對(duì)單端關(guān)聯(lián)的默認(rèn)懶加載策略,即只有在調(diào)用到其關(guān)聯(lián)對(duì)象的方法的
時(shí)候才真正發(fā)出查詢(xún)語(yǔ)句查詢(xún)其對(duì)象數(shù)據(jù),其關(guān)聯(lián)對(duì)象是代理類(lèi)
c.no-proxy:這種懶加載特性須要對(duì)類(lèi)進(jìn)行增加,運(yùn)用no-proxy,其關(guān)聯(lián)對(duì)象不是代理類(lèi)
留意:在class標(biāo)簽上配置的lazy屬性不會(huì)影響到關(guān)聯(lián)對(duì)象!!!
(二)inverse
inverse是指的關(guān)聯(lián)關(guān)系的限制方向,inverse=false的side(side其實(shí)是指inverse=false所位
于的class元素)端有責(zé)任維護(hù)關(guān)系,而inverse—true端無(wú)須維護(hù)這些關(guān)系
(三)cascade
cascade指的是層級(jí)之間的連鎖操作。在定義關(guān)聯(lián)對(duì)象的映射時(shí),運(yùn)用cascade="all”,
cascade="save-update”,cascade="all-delete-orphanM或cascade="delete"
a.假如父對(duì)象被保存,全部的子對(duì)象會(huì)被傳遞到saveOrUpdate()方法去執(zhí)行(cascade="
save-update")
b.假如父對(duì)象被傳遞到update?;蛘遱aveOrUpdate。,全部的子對(duì)象會(huì)被傳遞到saveOrUpdate()
方法去執(zhí)行(cascade="save-update")
c.假如一個(gè)臨時(shí)的子對(duì)象被一個(gè)許久化的父對(duì)象引用了,它會(huì)被傳遞到saveOrUpdate。去執(zhí)
行(cascade="save-updateM)
d.假如父對(duì)象被刪除了,全部的子對(duì)象對(duì)被傳遞到delete。方法執(zhí)行(cascade^'delete")
e.假如臨時(shí)的子對(duì)象不再被許久化的父對(duì)象引用,什么都不會(huì)發(fā)生(必要時(shí),程序應(yīng)當(dā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-delete-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ì)運(yùn)用?并運(yùn)用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ù))
b.問(wèn)題解法按遞歸算法實(shí)現(xiàn)。(回溯)
c.數(shù)據(jù)的結(jié)構(gòu)形式是按遞歸定義的。(樹(shù)的遍歷,圖的搜尋)
3).這是一個(gè)排列的例子,它所做的工作是將輸入的一個(gè)字符串中的全部元素進(jìn)行排序并輸
出,例如:你給出的參數(shù)是"abc"則程序會(huì)輸出:abcacbbacbcacabcbaa.算法的出口在
于:1ow=high也就是現(xiàn)在給出的排列元素只有一個(gè)時(shí)。b.算法的靠近過(guò)程:先確
定排列的第一位元素,也就是循環(huán)中i所代表的元素,然后1。w+1起先削減排列元素,
如此下去,直到1ow=highpublicclassFoo{
publicstaticvoidmain(String[]args){
permute("abc");
}
publicstaticvoidpermute(Stringstr){
char[]strArray=str.toCharArrayO;
permute(strArray,0,strArray.length-1);
publicstaticvoidpermute(char[]list,intlow,inthigh){
inti;
if(low==high){
Stringcout="”;
for(i=0;i<=high;i++)
cout+=listfi];
System.out.println(cout);
}else{
for(i=low;i<=high;i++){
chartemp=list[low];
list[low]=listfi];
list[i]=temp;
permute(list,low+1,high);
temp=list[low];
list[low]=list[i];
listfi]=temp;
27.列出自己常用的jdk包.
解答:JDK常用的package
java.lang:這個(gè)是系統(tǒng)的基礎(chǔ)類(lèi),比如String等都是這里面的,這個(gè)package是唯個(gè)可
以不用import就可以運(yùn)用的Package
java.io:這里面是全部輸入輸出有關(guān)的類(lèi),比如文件操作等
:這里面是與網(wǎng)絡(luò)有關(guān)的類(lèi),比如URL,URLConnection等。
java.util:這個(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)
解答:線(xiàn)性表,鏈表,哈希表是常用的數(shù)據(jù)結(jié)構(gòu)。
29.List、M叩、Set三個(gè)接口存儲(chǔ)元素時(shí)各有什么特點(diǎn)?
解答:
1)List是有序的Collection,運(yùn)用此接口能夠精確的限制每個(gè)元素插入的位置。用戶(hù)能夠運(yùn)
用索引(元素在List中的位置,類(lèi)似于數(shù)組下標(biāo))來(lái)訪(fǎng)問(wèn)List中的元素,這類(lèi)似于Java的
數(shù)組。
2)Set是一種不包含重復(fù)的元素的Collection,即隨意的兩個(gè)元素el和e2都有
e1.equals(e2)=false,Set最多有一個(gè)null元素。
3)Map接口:請(qǐng)留意,Map沒(méi)有繼承Collection接口,Map供應(yīng)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è)客戶(hù)請(qǐng)求時(shí),
將執(zhí)行如下流程.1)檢索和用戶(hù)請(qǐng)求匹配的ActionMapping實(shí)例,假如不存在,就返回請(qǐng)求路徑
無(wú)效信息;2)假如ActionForm實(shí)例不存在,就創(chuàng)建一個(gè)ActionForm對(duì)象,把客戶(hù)提交的表單數(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的execute。方法返回一個(gè)
ActionForward對(duì)象,ActionServlet在把客戶(hù)請(qǐng)求轉(zhuǎn)發(fā)給ActionForward對(duì)象指向的JSP組件;
7)ActionForward對(duì)象指向JSP組件生成動(dòng)態(tài)網(wǎng)頁(yè),返回給客戶(hù);
31.在項(xiàng)目中用過(guò)Spring的哪些方面?及用過(guò)哪些Ajax框架?
解答:在項(xiàng)目運(yùn)用過(guò)SpringIOC,AOP,DAO,ORM,還有上下文環(huán)境。
在項(xiàng)目運(yùn)用過(guò)Extjuery等Ajax框架.
32、abstractclass和interface有什么區(qū)分?
解答:聲明方法的存在而不去實(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),并讓它指向詳細(xì)子類(lèi)的
一個(gè)實(shí)例。不能有抽象構(gòu)造函數(shù)或抽象靜態(tài)方法。Abstract類(lèi)的子類(lèi)為它們父類(lèi)中的全部抽
象方法供應(yīng)實(shí)現(xiàn),否則它們也是抽象類(lèi)。取而代之,在子類(lèi)中實(shí)現(xiàn)該方法。知道其行為的其
它類(lèi)可以在類(lèi)中實(shí)現(xiàn)這些方法。接口(interface)是抽象類(lèi)的變體。新型多繼承性可通過(guò)實(shí)
現(xiàn)這樣的接口而獲得。接口中的全部方法都是抽象的,全部成員變量都是publicstaticfinal
的。一個(gè)類(lèi)可以實(shí)現(xiàn)多個(gè)接口,當(dāng)類(lèi)實(shí)現(xiàn)接口時(shí),必需實(shí)現(xiàn)接口的全部方法。抽象類(lèi)在Java
語(yǔ)言中表示的是一種單繼承的關(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è)接口的
話(huà)就必需實(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,
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)接收客戶(hù)端的請(qǐng)求。ActionServlet包括一組基于配
置的ActionMapping對(duì)象,每個(gè)ActionMapping對(duì)象實(shí)現(xiàn)了一個(gè)請(qǐng)求到一個(gè)詳細(xì)的Model部
分的Action處理器對(duì)象之間的映射。Model部分由Action和ActionForm對(duì)象構(gòu)成。全部的
Action處理器對(duì)象都是開(kāi)發(fā)者從Struts的Action類(lèi)派生的子類(lèi)。Action處理器對(duì)象封裝了詳
細(xì)的處理邏輯,調(diào)用業(yè)務(wù)邏輯模塊,并且把響應(yīng)提交到合適的View組件以產(chǎn)生響應(yīng)。Struts
供應(yīng)的ActionForm組件對(duì)象可以通過(guò)定義屬性描述客戶(hù)端表單數(shù)據(jù),開(kāi)發(fā)者可以從它派生
子類(lèi)對(duì)象,并利用它和Struts供應(yīng)的自定義標(biāo)記庫(kù)相結(jié)合,可以實(shí)現(xiàn)對(duì)客戶(hù)端的表單數(shù)據(jù)的
良好封裝和支持,Action處理器對(duì)象可以干脆對(duì)它進(jìn)行讀寫(xiě),而不再須要和request、response
對(duì)象進(jìn)行數(shù)據(jù)交互。通過(guò)ActionForm組件對(duì)象實(shí)現(xiàn)了對(duì)View和Model之間交互的支持(View
部分是通過(guò)JSP技術(shù)實(shí)現(xiàn)的)。Struts供應(yīng)了自定義的標(biāo)記庫(kù),通過(guò)這些自定義標(biāo)記庫(kù)可以
特殊簡(jiǎn)潔地和系統(tǒng)的Model部分交互,通過(guò)運(yùn)用這些自定義標(biāo)記庫(kù)創(chuàng)建的
JSP表單,可以實(shí)現(xiàn)對(duì)Model部分中的ActionForm的映射,完成對(duì)用戶(hù)數(shù)據(jù)的封裝。
34.java語(yǔ)言中public、private、protected三個(gè)關(guān)鍵字的用法,重寫(xiě)和重載的區(qū)分。
解答:
作用域當(dāng)前類(lèi)同包子類(lèi)其它
publicVVVVprotectedVVVXdefaultVVXXprivateVXXX
重寫(xiě):發(fā)生在父子類(lèi)之間,方法名相同,參數(shù)的類(lèi)型、個(gè)數(shù)、依次相同,返回值相同,訪(fǎng)問(wèn)
權(quán)限不能更封閉,拋出異樣不能寬泛;
重載:發(fā)生在同一個(gè)類(lèi)中,方法名相同,但是參數(shù)不同(類(lèi)型不同或個(gè)數(shù)不同或參數(shù)的依次
不同),返回值可以不相同。
35.JSP頁(yè)面之間傳遞參數(shù)的方法有哪些?
解答:
1)request
2)session
3)application
4)提交表單
5)超鏈接
36.forward和redirect的區(qū)分
解答:forward是容器中限制權(quán)的轉(zhuǎn)向,是服務(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)求,并且從閱讀器的地址欄中可以看到跳轉(zhuǎn)后的鏈接地址。前者更加高效,在
前者可以滿(mǎn)足須要時(shí),盡量運(yùn)用forward。方法,并且,這樣也有助于隱藏實(shí)際的鏈接;在
有些狀況下,比如,須要跳轉(zhuǎn)到一個(gè)其它服務(wù)器上的資源,則必需運(yùn)用sendRedirect。方法。
37.Java反射機(jī)制的作用?
解答:Java反射機(jī)制的作用是:
1)在運(yùn)行時(shí)推斷隨意一個(gè)對(duì)象所屬的類(lèi)。
2)在運(yùn)行時(shí)構(gòu)造隨意一個(gè)類(lèi)的對(duì)象。
3)在運(yùn)行時(shí)推斷隨意一個(gè)類(lèi)所具有的成員變量和方法。
4)在運(yùn)行時(shí)調(diào)用隨意一個(gè)對(duì)象的方法
38.你是怎么理解java的泛型的?
解答:在JavaSE1.5之前,沒(méi)有泛型的狀況的下,通過(guò)對(duì)類(lèi)型Object的引用來(lái)實(shí)現(xiàn)參數(shù)的
“隨意化”,“隨意化”帶來(lái)的缺點(diǎn)是要做顯式的強(qiáng)制類(lèi)型轉(zhuǎn)換,而這種轉(zhuǎn)換是要求開(kāi)發(fā)者對(duì)
實(shí)際參數(shù)類(lèi)型可以預(yù)知的狀況下進(jìn)行的。對(duì)于強(qiáng)制類(lèi)型轉(zhuǎn)換錯(cuò)誤的狀況,編譯器可能不提示
錯(cuò)誤,在運(yùn)行的時(shí)候才出現(xiàn)異樣,這是一個(gè)平安隱患。
泛型是JavaSE1.5的新特性,泛型的本質(zhì)是參數(shù)化類(lèi)型,也就是說(shuō)所操作的數(shù)據(jù)類(lèi)型被指
定為一個(gè)參數(shù)。這種參數(shù)類(lèi)型可以用在類(lèi)、接口和方法的創(chuàng)建中,分別稱(chēng)為泛型類(lèi)、泛型接
口、泛型方法。
泛型的好處是在編譯的時(shí)候檢查類(lèi)型平安,并且全部的強(qiáng)制轉(zhuǎn)換都是自動(dòng)和隱式的,提高代
碼的重用率。
39.JAVA源文件中是否可以包括多個(gè)類(lèi),有什么限制
解答:一個(gè)java源文件中可以包含多個(gè)類(lèi),每個(gè)源文件中至多有一個(gè)public類(lèi),假如有的
話(huà),那么源文件的名字必需與之相同。假如源文件中沒(méi)有public類(lèi),則源文件用什么名字都
可以,但最好還是具有特定的意義,免得自己都不記得里面寫(xiě)的是什么了。
40.在一個(gè)千萬(wàn)級(jí)的數(shù)據(jù)庫(kù)查尋中,如何提高查詢(xún)效率?分別說(shuō)出在數(shù)據(jù)庫(kù)設(shè)計(jì)、SQL語(yǔ)
句、java等層面的解決方案。
解答:
1)數(shù)據(jù)庫(kù)設(shè)計(jì)方面:
a.對(duì)查詢(xún)進(jìn)行優(yōu)化,應(yīng)盡量避開(kāi)全表掃描,首先應(yīng)考慮在where及orderby涉及的列上建
立索引。
b.應(yīng)盡量避開(kāi)在where子句中對(duì)字段進(jìn)行null值推斷,否則將導(dǎo)致引擎放棄運(yùn)用索引而
進(jìn)行全表掃描,如:selectidfromtwherenumisnull可以在num上設(shè)置默認(rèn)值0,確保表
中num列沒(méi)有null值,然后這樣查詢(xún):selectidfromtwherenum=0
c.并不是全部索引對(duì)查詢(xún)都有效,SQL是依據(jù)表中數(shù)據(jù)來(lái)進(jìn)行查詢(xún)優(yōu)化的,當(dāng)索引列有大
量數(shù)據(jù)重復(fù)時(shí),查詢(xún)可能不會(huì)去利用索引,如一表中有字段sex,male、female幾乎各一半,
那么即使在sex上建了索引也對(duì)查詢(xún)效率起不了作用。
d.索引并不是越多越好,索引當(dāng)然可以提高相應(yīng)的select的效率,但同時(shí)也降低了insert
及叩date的效率,因?yàn)閕nsert或update時(shí)有可能會(huì)重建索引,所以怎樣建索引須要慎重
考慮,視詳細(xì)狀況而定。一個(gè)表的索引數(shù)最好不要超過(guò)6個(gè),若太多則應(yīng)考慮一些不常運(yùn)用
到的列上建的索引是否有必要。
e.應(yīng)盡可能的避開(kāi)更新索引數(shù)據(jù)列,因?yàn)樗饕龜?shù)據(jù)列的依次就是表記錄的物理存儲(chǔ)依次,
一旦該列值變更將導(dǎo)致整個(gè)表記錄的依次的調(diào)整,會(huì)耗費(fèi)相當(dāng)大的資源。若應(yīng)用系統(tǒng)須要頻
繁更新索引數(shù)據(jù)列,那么須要考慮是否應(yīng)將該索引建為索引。
f.盡量運(yùn)用數(shù)字型字段,若只含數(shù)值信息的字段盡量不要設(shè)計(jì)為字符型,這會(huì)降低查詢(xún)和
連接的性能,并會(huì)增加存儲(chǔ)開(kāi)銷(xiāo)。這是因?yàn)橐嬖谔幚聿樵?xún)和連接時(shí)會(huì)逐個(gè)比較字符串中每
一個(gè)字符,而對(duì)于數(shù)字型而言只須要比較一次就夠了。
g.盡可能的運(yùn)用varchar/nvarchar代替char/nchar,因?yàn)槭紫茸冮L(zhǎng)字段存儲(chǔ)空間小,可以
節(jié)約存儲(chǔ)空間,其次對(duì)于查詢(xún)來(lái)說(shuō),在一個(gè)相對(duì)較小的字段內(nèi)搜尋效率明顯要高些。
h.盡量運(yùn)用表變量來(lái)代替臨時(shí)表。假如表變量包含大量數(shù)據(jù),請(qǐng)留意索引特殊有限(只有
主鍵索引)。
i.避開(kāi)頻繁創(chuàng)建和刪除臨時(shí)表,以削減系統(tǒng)表資源的消耗。
j.臨時(shí)表并不是不行運(yùn)用,適當(dāng)?shù)剡\(yùn)用它們可以使某些例程更有效,例如,當(dāng)須要重復(fù)引用
大型表或常用表中的某個(gè)數(shù)據(jù)集時(shí)。但是,對(duì)于一次性事務(wù),最好運(yùn)用導(dǎo)出表。
k.在新建臨時(shí)表時(shí),假如一次性插入數(shù)據(jù)量很大,那么可以運(yùn)用selectinto代替create
table,避開(kāi)造成大量log,以提高速度;假如數(shù)據(jù)量不大,為了緩和系統(tǒng)表的資源,應(yīng)先
createtable,然后insert。
1.假如運(yùn)用到了臨時(shí)表,在存儲(chǔ)過(guò)程的最終務(wù)必將全部的臨時(shí)表顯式刪除,先truncate
table,然后droptable,這樣可以避開(kāi)系統(tǒng)表的較長(zhǎng)時(shí)間鎖定。
2)SQL語(yǔ)句方面:
a.應(yīng)盡量避開(kāi)在where子句中運(yùn)用!=或<>操作符,否則將引擎放棄運(yùn)用索引而進(jìn)行全表掃
描。
b.應(yīng)盡量避開(kāi)在where子句中運(yùn)用or來(lái)連接條件,否則將導(dǎo)致引擎放棄運(yùn)用索引而進(jìn)行
全表掃描,如:selectidfromlwherenum=10ornum=20可以這樣查詢(xún):selectidfromI
wherenum=10unionallselectidfromtwherenum=20
c.in和notin也要慎用,否則會(huì)導(dǎo)致全表掃描,如:selectidfromtwherenumin(1,2,3)對(duì)
于連續(xù)的數(shù)值,能用between就不要用in了:selectidfromtwherenumbetween1and3
d,下面的查詢(xún)也將導(dǎo)致全表掃描:selectidfromtwherenamelike'%abc%'
e.假如在where子句中運(yùn)用參數(shù),也會(huì)導(dǎo)致全表掃描。因?yàn)镾QL只有在運(yùn)行時(shí)才會(huì)解析局
部變量,但優(yōu)化程序不能將訪(fǎng)問(wèn)支配的選擇推遲到運(yùn)行時(shí);它必需在編譯時(shí)進(jìn)行選擇。然而,
假如在編譯時(shí)建立訪(fǎng)問(wèn)支配,變量的值還是未知的,因而無(wú)法作為索引選擇的輸入項(xiàng)。如下
面語(yǔ)句將進(jìn)行全表掃描:selectidfromtwherenum=@num可以改為強(qiáng)制查詢(xún)運(yùn)用索引:
selectidfromtwith(index(索弓|名))wherenum=@num
f.應(yīng)盡量避開(kāi)在where子句中對(duì)字段進(jìn)行表達(dá)式操作,這將導(dǎo)致引擎放棄運(yùn)用索引而進(jìn)行
全表掃描。如:selectidfromtwherenum/2=100應(yīng)改為:selectidfromtwherenum=100*2
g.應(yīng)盡量避開(kāi)在where子句中對(duì)字段進(jìn)行函數(shù)操作,這將導(dǎo)致引擎放棄運(yùn)用索引而進(jìn)行全
表掃描。如:selectidfromtwheresubstring(name,l,3)='abc'-name以abc開(kāi)頭的idselect
idfromtwheredatediff(day,createdate,'2023-11-30z)=0-'2023-11-30'生成的id應(yīng)改為:
selectidfromtwherenamelike'abc%'selectidfromtwherecreatedate>='2023-11-
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 擺攤鹵味加盟合同范本
- 20253月份混合辦公模式下網(wǎng)絡(luò)設(shè)備采購(gòu)質(zhì)量保證協(xié)議
- 租車(chē)合同范本文庫(kù)
- 認(rèn)知障礙護(hù)理科普
- 專(zhuān)職教師聘用合同
- 研究生聯(lián)合培養(yǎng)協(xié)議書(shū)二零二五年
- 報(bào)廢設(shè)備回收合同范本
- 購(gòu)苗栽植合同范本
- 腹部帶蒂皮瓣護(hù)理
- 企業(yè)員工計(jì)件合同范本
- 村內(nèi)綠化方案設(shè)計(jì)
- 六年級(jí)分?jǐn)?shù)應(yīng)用題100題及答案
- GB/T 22076-2024氣動(dòng)圓柱形快換接頭
- 研究生科研第一課:快速進(jìn)行文獻(xiàn)檢索與閱讀
- 高功率固體激光器熱管理新技術(shù)研究
- 電動(dòng)機(jī)拆卸與裝配培訓(xùn)
- 2024年高等教育經(jīng)濟(jì)類(lèi)自考-04531微觀經(jīng)濟(jì)學(xué)筆試歷年真題薈萃含答案
- 中央環(huán)保督察迎檢方案
- 組建燃料經(jīng)銷(xiāo)公司方案
- 工程經(jīng)濟(jì)學(xué)(第6版)全套教學(xué)課件
- 2024年腐植酸尿素行業(yè)分析報(bào)告及未來(lái)發(fā)展趨勢(shì)
評(píng)論
0/150
提交評(píng)論