版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
你對(duì)MVC的理解,MVC有什么優(yōu)缺點(diǎn)?結(jié)合Struts,說(shuō)明在一個(gè)Web應(yīng)用如何去使用?答:MVC設(shè)計(jì)模式(應(yīng)用觀察者模式的框架模式)M:Model(Businessprocesslayer),模型,操作數(shù)據(jù)的業(yè)務(wù)處理層,并獨(dú)立于表現(xiàn)層(Independentofpresentation)。V:View(Presentationlayer),視圖,通過(guò)客戶端數(shù)據(jù)類型顯示數(shù)據(jù),并回顯模型層的執(zhí)行結(jié)果。C:Controller(Controllayer),控制器,也就是視圖層和模型層橋梁,控制數(shù)據(jù)的流向,接受視圖層發(fā)出的事件,并重繪視圖MVC框架的一種實(shí)現(xiàn)模型模型二(Servlet-centric):JSP+Servlet+JavaBean,以控制為核心,JSP只負(fù)責(zé)顯示和收集數(shù)據(jù),Sevlet,連接視圖和模型,將視圖層數(shù)據(jù),發(fā)送給模型層,JavaBean,分為業(yè)務(wù)類和數(shù)據(jù)實(shí)體,業(yè)務(wù)類處理業(yè)務(wù)數(shù)據(jù),數(shù)據(jù)實(shí)體,承載數(shù)據(jù),基本上大多數(shù)的項(xiàng)目都是使用這種MVC的實(shí)現(xiàn)模式。StrutsMVC框架(Webapplicationframeworks)Struts是使用MVC的實(shí)現(xiàn)模式二來(lái)實(shí)現(xiàn)的,也就是以控制器為核心。Struts提供了一些組件使用MVC開發(fā)應(yīng)用程序:Model:Struts沒有提供model類。這個(gè)商業(yè)邏輯必須由Web應(yīng)用程序的開發(fā)者以JavaBean或EJB的形式提供View:Struts提供了actionform創(chuàng)建formbean,用于在controller和view間傳輸數(shù)據(jù)。此外,Struts提供了自定義JSP標(biāo)簽庫(kù),輔助開發(fā)者用JSP創(chuàng)建交互式的以表單為基礎(chǔ)的應(yīng)用程序,應(yīng)用程序資源文件保留了一些文本常量和錯(cuò)誤消息,可轉(zhuǎn)變?yōu)槠渌Z(yǔ)言,可用于JSP中。Controller:Struts提供了一個(gè)核心的控制器ActionServlet,通過(guò)這個(gè)核心的控制器來(lái)調(diào)用其他用戶注冊(cè)了的自定義的控制器Action,自定義Action需要符合Struts的自定義Action規(guī)范,還需要在struts-config.xml的特定配置文件中進(jìn)行配置,接收J(rèn)SP輸入字段形成Actionform,然后調(diào)用一個(gè)Action控制器。Action控制器中提供了model的邏輯接口。什么是WebService?答:WebService是一個(gè)SOA(面向服務(wù)的編程)的架構(gòu),它是不依賴于語(yǔ)言,不依賴于平臺(tái),可以實(shí)現(xiàn)不同的語(yǔ)言間的相互調(diào)用,通過(guò)Internet進(jìn)行基于Http協(xié)議的網(wǎng)絡(luò)應(yīng)用間的交互。WebService實(shí)現(xiàn)不同語(yǔ)言間的調(diào)用,是依托于一個(gè)標(biāo)準(zhǔn),webservice是需要遵守WSDL(web服務(wù)定義語(yǔ)言)/SOAP(簡(jiǎn)單請(qǐng)求協(xié)議)規(guī)范的。WebService=WSDL+SOAP+UDDI(webservice的注冊(cè))Soap是由Soap的part和0個(gè)或多個(gè)附件組成,一般只有part,在part中有Envelope和Body。WebService是通過(guò)提供標(biāo)準(zhǔn)的協(xié)議和接口,可以讓不同的程序集成的一種SOA架構(gòu)。WebService的優(yōu)點(diǎn)(1)可以讓異構(gòu)的程序相互訪問(wèn)(跨平臺(tái))(2)松耦合(3)基于標(biāo)準(zhǔn)協(xié)議(通用語(yǔ)言,允許其他程序訪問(wèn))WebService的基本原理(1)ServiceProvider采用WSDL描述服務(wù)(2)ServiceProvider采用UDDI將服務(wù)的描述文件發(fā)布到UDDI服務(wù)器(Registerserver)(3)ServiceRequestor在UDDI服務(wù)器上查詢并獲取WSDL文件(4)Servicerequestor將請(qǐng)求綁定到SOAP,并訪問(wèn)相應(yīng)的服務(wù)。什么是中間件?中間件就是程序中可織入的,可重用的,與業(yè)務(wù)邏輯無(wú)關(guān)的各種組件。中間件(middleware)是基礎(chǔ)軟件的一大類,屬于可復(fù)用軟件的范疇。顧名思義,中間件處于操作系統(tǒng)軟件與用戶的應(yīng)用軟件的中間。中間件在操作系統(tǒng)、網(wǎng)絡(luò)和數(shù)據(jù)庫(kù)之上,應(yīng)用軟件的下層,總的作用是為處于自己上層的應(yīng)用軟件提供運(yùn)行與開發(fā)的環(huán)境,幫助用戶靈活、高效地開發(fā)和集成復(fù)雜的應(yīng)用軟件。在眾多關(guān)于中間件的定義中,比較普遍被接受的是IDC表述的:中間件是一種獨(dú)立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用軟件借助這種軟件在不同的技術(shù)之間共享資源,中間件位于客戶機(jī)服務(wù)器的操作系統(tǒng)之上,管理計(jì)算資源和網(wǎng)絡(luò)通信。分類:數(shù)據(jù)訪問(wèn)中間件,遠(yuǎn)程調(diào)用中間件,消息中間件,交易中間件,對(duì)象中間件。舉例:1,RMI(RemoteMethodInvocations,遠(yuǎn)程調(diào)用)2,LoadBalancing(負(fù)載均衡,將訪問(wèn)負(fù)荷分散到各個(gè)服務(wù)器中)3,TransparentFail-over(透明的故障切換)4,Clustering(集群,用多個(gè)小的服務(wù)器代替大型機(jī))5,Back-end-Integration(后端集成,用現(xiàn)有的、新開發(fā)的系統(tǒng)如何去集成遺留的系統(tǒng))6,Transaction事務(wù)(全局/局部)全局事務(wù)(分布式事務(wù))局部事務(wù)(在同一數(shù)據(jù)庫(kù)聯(lián)接內(nèi)的事務(wù))7,DynamicRedeployment(動(dòng)態(tài)重新部署,在不停止原系統(tǒng)的情況下,部署新的系統(tǒng))8,SystemManagement(系統(tǒng)管理)9,Threading(多線程處理)10,Message-orientedMiddleware面向消息的中間件(異步的調(diào)用編程)11,ComponentLifeCycle(組件的生命周期管理)12,Resourcepooling(資源池)13,Security(安全)14,Caching(緩存)什么是典型的軟件三層結(jié)構(gòu)?軟件設(shè)計(jì)為什么要分層?軟件分層有什么好處?答:(1)Presentationlayer(表示層)(1)表示邏輯(生成界面代碼)(2)接收請(qǐng)求(3)處理業(yè)務(wù)層拋出的異常(4)負(fù)責(zé)規(guī)則驗(yàn)證(數(shù)據(jù)格式,數(shù)據(jù)非空等)(5)流程控制(2)Servicelayer(服務(wù)層/業(yè)務(wù)層)(1)封裝業(yè)務(wù)邏輯處理,并且對(duì)外暴露接口(2)負(fù)責(zé)事務(wù),安全等服務(wù)(3)Persistencelayer(持久層)(1)封裝數(shù)據(jù)訪問(wèn)的邏輯,暴露接口(2)提供方便的數(shù)據(jù)訪問(wèn)的方案(查詢語(yǔ)言,API,映射機(jī)制等)Domainlayer(域?qū)樱?1)業(yè)務(wù)對(duì)象以及業(yè)務(wù)關(guān)系的表示(2)處理簡(jiǎn)單的業(yè)務(wù)邏輯(3)域?qū)拥膶?duì)象可以穿越表示層,業(yè)務(wù)層,持久層軟件分層結(jié)構(gòu)使得代碼維護(hù)非常方便,設(shè)計(jì)明確,各層獨(dú)立,專注自己擅長(zhǎng)的領(lǐng)域。什么是OOP?OOP相對(duì)于面向過(guò)程編程有哪些優(yōu)點(diǎn)?OOP,Object-OrientedProgramming,面向?qū)ο缶幊滩煌诿嫦蜻^(guò)程編程:(1)OOP關(guān)注對(duì)象和角色,也就是事物的本質(zhì)1)OOP把客觀世界中的對(duì)象抽象成對(duì)應(yīng)的類;2)通過(guò)類構(gòu)造實(shí)例;3)通過(guò)依賴、繼承、實(shí)現(xiàn)等形式建立對(duì)象間的通信關(guān)系(2)OOP易于擴(kuò)展,增加或改變業(yè)務(wù)的功能,無(wú)需大幅改動(dòng)改變?cè)创a(3)OOP易于建模,OOP就是軟件架構(gòu)師在計(jì)算機(jī)高級(jí)語(yǔ)言中對(duì)客觀世界的抽象和再現(xiàn),人們可以很好地理解和建立起計(jì)算機(jī)中的抽象模型談?wù)凮verload和Override的區(qū)別。答:方法的重寫Overriding和重載Overloading是Java多態(tài)性的不同表現(xiàn)。重寫Overriding是父類與子類之間多態(tài)性的一種表現(xiàn),重載Overloading是一個(gè)類中多態(tài)性的一種表現(xiàn)。如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說(shuō)該方法被重寫(Overriding)。子類的對(duì)象使用這個(gè)方法時(shí),將調(diào)用子類中的定義,對(duì)它而言,父類中的定義如同被“屏蔽”了。如果在一個(gè)類中定義了多個(gè)同名的方法,它們或有不同的參數(shù)個(gè)數(shù)或有不同的參數(shù)類型,則稱為方法的重載(Overloading)。Overloaded的方法是可以改變返回值的類型。談?wù)凥ashMap和Hashtable的區(qū)別。答:HashMap是輕量級(jí)的(線程不安全的,效率高的)集合,Hashtable是重量級(jí)的(線程安全的,效率低的)集合。都屬于Map接口的類,實(shí)現(xiàn)了將惟一鍵映射到特定的值上。HashMap類沒有分類或者排序。它允許一個(gè)null鍵和多個(gè)null值。Hashtable類似于HashMap,但是不允許null鍵和null值。它也比HashMap慢,因?yàn)樗峭降?。?qǐng)問(wèn)abstractclass和interface有什么區(qū)別?答:1)接口沒有任何的實(shí)現(xiàn),而抽象類它可以有部分的實(shí)現(xiàn)也可以沒有;2)如果需要復(fù)用或者共享部分代碼,應(yīng)該用抽象類而不是接口;3)繼承無(wú)法解決類型的轉(zhuǎn)換問(wèn)題,接口就是為了解決這一問(wèn)題而產(chǎn)生的(Java的單繼承是接口產(chǎn)生的根本原因)接口是一種抽象的第三方規(guī)范,跟對(duì)象沒什么直接關(guān)系。請(qǐng)問(wèn)軟件開發(fā)中的設(shè)計(jì)模式你會(huì)使用哪些?答:我熟悉的設(shè)計(jì)模式有單例模式,DAO模式,模板方法,工廠模式,委托代理模式,MVC模式等。Singleton模式主要作用是保證在Java應(yīng)用程序中,一個(gè)類Class只有一個(gè)實(shí)例存在。Singleton模式一般形式:定義一個(gè)類,它的構(gòu)造函數(shù)為private的,它有一個(gè)static的private的該類變量,在類初始化時(shí)實(shí)例話,通過(guò)一個(gè)public的getInstance方法獲取對(duì)它的引用,繼而調(diào)用其中的方法。類的核心特性有哪些?類具有封裝性、繼承性和多態(tài)性。封裝性:類的封裝性為類的成員提供公有、缺省、保護(hù)和私有等多級(jí)訪問(wèn)權(quán)限,目的是隱藏類中的私有變量和類中方法的實(shí)現(xiàn)細(xì)節(jié)。繼承性:類的繼承性提供從已存在的類創(chuàng)建新類的機(jī)制,繼承(inheritance)使一個(gè)新類自動(dòng)擁有被繼承類(父類)的全部成員。多態(tài)性:類的多態(tài)性提供類中方法執(zhí)行的多樣性,多態(tài)性有兩種表現(xiàn)形式:重載和覆蓋。十一、請(qǐng)問(wèn)類與對(duì)象有什么區(qū)別?類類就是某一種事物的一般性的集合體,是相同或相似的各個(gè)事物共同特性的一種抽象。對(duì)象在面向?qū)ο蟾拍钪?,?duì)象(Object)是類的實(shí)例(instance)。對(duì)象與類的關(guān)系就像變量與數(shù)據(jù)類型的關(guān)系一樣。十二、寫出生產(chǎn)者消費(fèi)者模型的實(shí)現(xiàn)十三、用軟件工程和Java來(lái)敘述購(gòu)物車(shoppingcart)系統(tǒng)實(shí)現(xiàn)十四、文件系統(tǒng)的幾個(gè)類:FileInputStream、FileOutputStream、FileReader、FileWriter的區(qū)別十五、請(qǐng)寫出JavaAPI中最常用的五個(gè)包,并且各舉兩個(gè)類加以說(shuō)明。十六、請(qǐng)問(wèn)你在“電信運(yùn)營(yíng)支撐系統(tǒng)”中遇到了哪些問(wèn)題?你是怎么解決的?做這個(gè)項(xiàng)目你最大的收獲是什么?十七、請(qǐng)說(shuō)出幾個(gè)常用的異常類答:NullpointException(空指針異常)ClassNotFoundException(類找不到異常)ClassCastException(類型轉(zhuǎn)換異常)IllegalArgumentException(非法參數(shù)異常)ArithmeticException(算術(shù)異常)NumberFormatException(數(shù)據(jù)格式異常)IndexOutOfBoundsException(數(shù)組下標(biāo)越界異常)IllegalStateException(非法語(yǔ)句異常)十八、什么是進(jìn)程和線程??jī)烧叩膮^(qū)別是什么?十九、請(qǐng)簡(jiǎn)要描述一下你做的ShoppingCart項(xiàng)目。二十、請(qǐng)問(wèn)網(wǎng)絡(luò)7層協(xié)議,tcp/ip4層協(xié)議是什么?二十一、Java面向?qū)ο蟮乃拇筇攸c(diǎn)二十二、public,private,protected,default訪問(wèn)權(quán)限(可見性)答:public:全局可見protected:繼承體系結(jié)構(gòu)之間可見default(或不寫):同包可見private:本類可見。二十三、名詞解釋CRM[CustomerRelationshipManagement,客戶關(guān)系管理]ERP[EnterpriseResourcePlanning,企業(yè)資源規(guī)劃]OSS[OperationSupportSystem,運(yùn)營(yíng)支撐系統(tǒng)]BSS[BusinessSupportSystem,數(shù)據(jù)定義語(yǔ)言]BOSS[BusinessOperationSupportSystem,數(shù)據(jù)定義語(yǔ)言]OA[OfficeAutomatization,辦公自動(dòng)化]HTTPOOPSOAGUIDDL[DataDefinitionLanguage,數(shù)據(jù)定義語(yǔ)言]DML[DataManipulationLanguage,數(shù)據(jù)操作語(yǔ)言]WYSIWYG所見即所得[WhatYouSeeisWhatYouGet]CMPCMTB2BC2CB2CIDEDOMClient/ServerCMMORMMISMVCMVC是Model-View-Controller的簡(jiǎn)寫。"Model"代表的是應(yīng)用的業(yè)務(wù)邏輯(通過(guò)JavaBean,EJB組件實(shí)現(xiàn)),"View"是應(yīng)用的表示面(由JSP頁(yè)面產(chǎn)生),"Controller"是提供應(yīng)用的處理過(guò)程控制(一般是一個(gè)Servlet),通過(guò)這種設(shè)計(jì)模型把應(yīng)用邏輯,處理過(guò)程和顯示邏輯分成不同的組件實(shí)現(xiàn)。這些組件可以進(jìn)行交互和重用。OLECORBACORBA標(biāo)準(zhǔn)是公共對(duì)象請(qǐng)求代理結(jié)構(gòu)(CommonObjectRequestBrokerArchitecture),由對(duì)象管理組織(ObjectManagementGroup,縮寫為OMG)標(biāo)準(zhǔn)化。它的組成是接口定義語(yǔ)言(IDL),語(yǔ)言綁定(binding:也譯為聯(lián)編)和允許應(yīng)用程序間互操作的協(xié)議。其目的為:用不同的程序設(shè)計(jì)語(yǔ)言書寫在不同的進(jìn)程中運(yùn)行為不同的操作系統(tǒng)開發(fā)。UMLUML,標(biāo)準(zhǔn)建模語(yǔ)言,包含用例圖,靜態(tài)圖(包括類圖、對(duì)象圖和包圖),行為圖,交互圖(順序圖,合作圖),實(shí)現(xiàn)圖等。XMLCMMIJREJ2EEJ2EE是Sun公司提出的多層(multi-diered),分布式(distributed),基于組件(component-base)的企業(yè)級(jí)應(yīng)用模型(enterprieseapplicationmodel).在這樣的一個(gè)應(yīng)用系統(tǒng)中,可按照功能劃分為不同的組件,這些組件又可在不同計(jì)算機(jī)上,并且處于相應(yīng)的層次(tier)中。所屬層次包括客戶層(clietntier)組件,web層和組件,Business層和組件,企業(yè)信息系統(tǒng)(EIS)層。JDKAOPOOContainerW3CJMSDomainPOJOJVMJNDIJTASOAP[SimpleObjectAccessProtocol,簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議]WSDLJDOJDO是Java對(duì)象持久化的新的規(guī)范,為JavaDataObject的簡(jiǎn)稱,也是一個(gè)用于存取某種數(shù)據(jù)倉(cāng)庫(kù)中的對(duì)象的標(biāo)準(zhǔn)化API。JDO提供了透明的對(duì)象存儲(chǔ),因此對(duì)開發(fā)人員來(lái)說(shuō),存儲(chǔ)數(shù)據(jù)對(duì)象完全不需要額外的代碼(如JDBCAPI的使用)。這些繁瑣的例行工作已經(jīng)轉(zhuǎn)移到JDO產(chǎn)品提供商身上,使開發(fā)人員解脫出來(lái),從而集中時(shí)間和精力在業(yè)務(wù)邏輯上。另外,JDO很靈活,因?yàn)樗梢栽谌魏螖?shù)據(jù)底層上運(yùn)行。JDBC只是面向關(guān)系數(shù)據(jù)庫(kù)(RDBMS)JDO更通用,提供到任何數(shù)據(jù)底層的存儲(chǔ)功能,比如關(guān)系數(shù)據(jù)庫(kù)、文件、XML以及對(duì)象數(shù)據(jù)庫(kù)(ODBMS)等等,使得應(yīng)用可移植性更強(qiáng)。TDDDAOIoC[InversionofControl,控制反轉(zhuǎn)]RMIDNS[InternetDomainNameSystem,因特網(wǎng)域名系統(tǒng)]URLURI二十四、數(shù)據(jù)庫(kù)連接池的工作機(jī)制二十五、互聯(lián)網(wǎng)提供哪些服務(wù)?二十六、請(qǐng)寫出JSP的幾個(gè)隱含內(nèi)置對(duì)象答:JSP中隱含內(nèi)置對(duì)象名稱類型注釋和范圍requestjavax.servlet.http.HttpServletRequestrequestresponsejavax.servlet.http.HttpServletResponseresponsepagejavax.lang.ObjectpageExceptionjava.lang.ThrowablepagepageContextjavax.servlet.jsp.PageContextpagesessionjavax.servlet.http.HttpSessionsessionapplicationjavax.servlet.ServletContextServletContextoutjavax.servlet.jsp.JspWriterOutputStreamconfigjavax.servlet.ServletConfigServletConfigJSP共有以下9種基本內(nèi)置組件(可與ASP的6種內(nèi)部組件相對(duì)應(yīng)):request用戶端請(qǐng)求,此請(qǐng)求會(huì)包含來(lái)自GET/POST請(qǐng)求的參數(shù)response網(wǎng)頁(yè)傳回用戶端的回應(yīng)pageJSP網(wǎng)頁(yè)本身exception針對(duì)錯(cuò)誤網(wǎng)頁(yè),未捕捉的例外pageContext網(wǎng)頁(yè)的屬性是在這里管理session與請(qǐng)求有關(guān)的會(huì)話期applicationservlet正在執(zhí)行的內(nèi)容out用來(lái)傳送回應(yīng)的輸出configServlet的構(gòu)架部件二十七、請(qǐng)你談?wù)凷SH整合答:SSH:Struts(表示層)+Spring(業(yè)務(wù)層)+Hibernate(持久層)Struts:Struts是一個(gè)表示層框架,主要作用是界面展示,接收請(qǐng)求,分發(fā)請(qǐng)求。在MVC框架中,Struts屬于VC層次,負(fù)責(zé)界面表現(xiàn),負(fù)責(zé)MVC關(guān)系的分發(fā)。(View:沿用JSP,HTTP,F(xiàn)orm,Tag,Resourse;Controller:ActionServlet,struts-config.xml,Action)Hibernate:Hibernate是一個(gè)持久層框架,它只負(fù)責(zé)與關(guān)系數(shù)據(jù)庫(kù)的操作。Spring:Spring是一個(gè)業(yè)務(wù)層框架,是一個(gè)整合的框架,能夠很好地黏合表示層與持久層。二十八、應(yīng)用服務(wù)器與WebServer的區(qū)別二十九、JavaServletAPI中forward()與redirect()的區(qū)別答:前者僅是容器中控制權(quán)的轉(zhuǎn)向,在客戶端瀏覽器地址欄中不會(huì)顯示出轉(zhuǎn)向后的地址;后者則是完全的跳轉(zhuǎn),瀏覽器將會(huì)得到跳轉(zhuǎn)的地址,并重新發(fā)送請(qǐng)求鏈接。這樣,從瀏覽器的地址欄中可以看到跳轉(zhuǎn)后的鏈接地址。所以,前者更加高效,在前者可以滿足需要時(shí),盡量使用forward()方法,并且,這樣也有助于隱藏實(shí)際的鏈接。在有些情況下,比如,需要跳轉(zhuǎn)到一個(gè)其它服務(wù)器上的資源,則必須使用sendRedirect()方法。三十、寫一個(gè)簡(jiǎn)單的C/S結(jié)構(gòu)程序,Java的通信編程,編程題(或問(wèn)答),用JAVASOCKET編程,讀服務(wù)器幾個(gè)字符,再寫入本地顯示?答:Server端程序:packagetest;.*;importjava.io.*;publicclassServer{privateServerSocketss;privateSocketsocket;privateBufferedReaderin;privatePrintWriterout;publicServer(){try{ss=newServerSocket(10000);while(true){socket=ss.accept();StringRemoteIP=socket.getInetAddress().getHostAddress();StringRemotePort=":"+socket.getLocalPort();System.out.println("Aclientcomein!IP:"+RemoteIP+RemotePort);in=newBufferedReader(newInputStreamReader(socket.getInputStream()));Stringline=in.readLine();System.out.println("Cleintsendis:"+line);out=newPrintWriter(socket.getOutputStream(),true);out.println("YourMessageReceived!");out.close();in.close();socket.close();}}catch(IOExceptione){out.println("wrong");}}publicstaticvoidmain(String[]args){newServer();}};Client端程序:packagetest;importjava.io.*;.*;publicclassClient{Socketsocket;BufferedReaderin;PrintWriterout;publicClient(){try{System.out.println("TrytoConnectto:10000");socket=newSocket("",10000);System.out.println("TheServerConnected!");System.out.println("PleaseentersomeCharacter:");BufferedReaderline=newBufferedReader(newInputStreamReader(System.in));out=newPrintWriter(socket.getOutputStream(),true);out.println(line.readLine());in=newBufferedReader(newInputStreamReader(socket.getInputStream()));System.out.println(in.readLine());out.close();in.close();socket.close();}catch(IOExceptione){out.println("Wrong");}}publicstaticvoidmain(String[]args){newClient();}};九、請(qǐng)問(wèn)軟件開發(fā)中的設(shè)計(jì)模式你會(huì)使用哪些?答:我熟悉的設(shè)計(jì)模式有單例模式,DAO模式,模板方法,工廠模式,委托代理模式,MVC模式等。Singleton模式主要作用是保證在Java應(yīng)用程序中,一個(gè)類Class只有一個(gè)實(shí)例存在。Singleton模式一般形式:定義一個(gè)類,它的構(gòu)造函數(shù)為private的,它有一個(gè)static的private的該類變量,在類初始化時(shí)實(shí)例話,通過(guò)一個(gè)public的getInstance方法獲取對(duì)它的引用,繼而調(diào)用其中的方法。類的核心特性有哪些?類具有封裝性、繼承性和多態(tài)性。封裝性:類的封裝性為類的成員提供公有、缺省、保護(hù)和私有等多級(jí)訪問(wèn)權(quán)限,目的是隱藏類中的私有變量和類中方法的實(shí)現(xiàn)細(xì)節(jié)。繼承性:類的繼承性提供從已存在的類創(chuàng)建新類的機(jī)制,繼承(inheritance)使一個(gè)新類自動(dòng)擁有被繼承類(父類)的全部成員。多態(tài)性:類的多態(tài)性提供類中方法執(zhí)行的多樣性,多態(tài)性有兩種表現(xiàn)形式:重載和覆蓋。十一、請(qǐng)問(wèn)類與對(duì)象有什么區(qū)別?類類就是某一種事物的一般性的集合體,是相同或相似的各個(gè)事物共同特性的一種抽象。對(duì)象在面向?qū)ο蟾拍钪?,?duì)象(Object)是類的實(shí)例(instance)。對(duì)象與類的關(guān)系就像變量與數(shù)據(jù)類型的關(guān)系一樣。十二、寫出生產(chǎn)者消費(fèi)者模型的實(shí)現(xiàn)十三、用軟件工程和Java來(lái)敘述購(gòu)物車(shoppingcart)系統(tǒng)實(shí)現(xiàn)十四、文件系統(tǒng)的幾個(gè)類:FileInputStream、FileOutputStream、FileReader、FileWriter的區(qū)別十五、請(qǐng)寫出JavaAPI中最常用的五個(gè)包,并且各舉兩個(gè)類加以說(shuō)明。十六、請(qǐng)問(wèn)你在“電信運(yùn)營(yíng)支撐系統(tǒng)”中遇到了哪些問(wèn)題?你是怎么解決的?做這個(gè)項(xiàng)目你最大的收獲是什么?十七、請(qǐng)說(shuō)出幾個(gè)常用的異常類答:NullpointException(空指針異常)ClassNotFoundException(類找不到異常)ClassCastException(類型轉(zhuǎn)換異常)IllegalArgumentException(非法參數(shù)異常)ArithmeticException(算術(shù)異常)NumberFormatException(數(shù)據(jù)格式異常)IndexOutOfBoundsException(數(shù)組下標(biāo)越界異常)IllegalStateException(非法語(yǔ)句異常)十八、什么是進(jìn)程和線程??jī)烧叩膮^(qū)別是什么?十九、請(qǐng)簡(jiǎn)要描述一下你做的ShoppingCart項(xiàng)目。二十、請(qǐng)問(wèn)網(wǎng)絡(luò)7層協(xié)議,tcp/ip4層協(xié)議是什么?二十一、Java面向?qū)ο蟮乃拇筇攸c(diǎn)二十二、public,private,protected,default訪問(wèn)權(quán)限(可見性)答:public:全局可見protected:繼承體系結(jié)構(gòu)之間可見default(或不寫):同包可見private:本類可見。二十三、名詞解釋CRM[CustomerRelationshipManagement,客戶關(guān)系管理]ERP[EnterpriseResourcePlanning,企業(yè)資源規(guī)劃]OSS[OperationSupportSystem,運(yùn)營(yíng)支撐系統(tǒng)]BSS[BusinessSupportSystem,數(shù)據(jù)定義語(yǔ)言]BOSS[BusinessOperationSupportSystem,數(shù)據(jù)定義語(yǔ)言]OA[OfficeAutomatization,辦公自動(dòng)化]HTTPOOPSOAGUIDDL[DataDefinitionLanguage,數(shù)據(jù)定義語(yǔ)言]DML[DataManipulationLanguage,數(shù)據(jù)操作語(yǔ)言]WYSIWYG所見即所得[WhatYouSeeisWhatYouGet]CMPCMTB2BC2CB2CIDEDOMClient/ServerCMMORMMISMVCMVC是Model-View-Controller的簡(jiǎn)寫。"Model"代表的是應(yīng)用的業(yè)務(wù)邏輯(通過(guò)JavaBean,EJB組件實(shí)現(xiàn)),"View"是應(yīng)用的表示面(由JSP頁(yè)面產(chǎn)生),"Controller"是提供應(yīng)用的處理過(guò)程控制(一般是一個(gè)Servlet),通過(guò)這種設(shè)計(jì)模型把應(yīng)用邏輯,處理過(guò)程和顯示邏輯分成不同的組件實(shí)現(xiàn)。這些組件可以進(jìn)行交互和重用。OLECORBACORBA標(biāo)準(zhǔn)是公共對(duì)象請(qǐng)求代理結(jié)構(gòu)(CommonObjectRequestBrokerArchitecture),由對(duì)象管理組織(ObjectManagementGroup,縮寫為OMG)標(biāo)準(zhǔn)化。它的組成是接口定義語(yǔ)言(IDL),語(yǔ)言綁定(binding:也譯為聯(lián)編)和允許應(yīng)用程序間互操作的協(xié)議。其目的為:用不同的程序設(shè)計(jì)語(yǔ)言書寫在不同的進(jìn)程中運(yùn)行為不同的操作系統(tǒng)開發(fā)。UMLUML,標(biāo)準(zhǔn)建模語(yǔ)言,包含用例圖,靜態(tài)圖(包括類圖、對(duì)象圖和包圖),行為圖,交互圖(順序圖,合作圖),實(shí)現(xiàn)圖等。XMLCMMIJREJ2EEJ2EE是Sun公司提出的多層(multi-diered),分布式(distributed),基于組件(component-base)的企業(yè)級(jí)應(yīng)用模型(enterprieseapplicationmodel).在這樣的一個(gè)應(yīng)用系統(tǒng)中,可按照功能劃分為不同的組件,這些組件又可在不同計(jì)算機(jī)上,并且處于相應(yīng)的層次(tier)中。所屬層次包括客戶層(clietntier)組件,web層和組件,Business層和組件,企業(yè)信息系統(tǒng)(EIS)層。JDKAOPOOContainerW3CJMSDomainPOJOJVMJNDIJTASOAP[SimpleObjectAccessProtocol,簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議]WSDLJDOJDO是Java對(duì)象持久化的新的規(guī)范,為JavaDataObject的簡(jiǎn)稱,也是一個(gè)用于存取某種數(shù)據(jù)倉(cāng)庫(kù)中的對(duì)象的標(biāo)準(zhǔn)化API。JDO提供了透明的對(duì)象存儲(chǔ),因此對(duì)開發(fā)人員來(lái)說(shuō),存儲(chǔ)數(shù)據(jù)對(duì)象完全不需要額外的代碼(如JDBCAPI的使用)。這些繁瑣的例行工作已經(jīng)轉(zhuǎn)移到JDO產(chǎn)品提供商身上,使開發(fā)人員解脫出來(lái),從而集中時(shí)間和精力在業(yè)務(wù)邏輯上。另外,JDO很靈活,因?yàn)樗梢栽谌魏螖?shù)據(jù)底層上運(yùn)行。JDBC只是面向關(guān)系數(shù)據(jù)庫(kù)(RDBMS)JDO更通用,提供到任何數(shù)據(jù)底層的存儲(chǔ)功能,比如關(guān)系數(shù)據(jù)庫(kù)、文件、XML以及對(duì)象數(shù)據(jù)庫(kù)(ODBMS)等等,使得應(yīng)用可移植性更強(qiáng)。TDDDAOIoC[InversionofControl,控制反轉(zhuǎn)]RMIDNS[InternetDomainNameSystem,因特網(wǎng)域名系統(tǒng)]URLURI二十四、數(shù)據(jù)庫(kù)連接池的工作機(jī)制二十五、互聯(lián)網(wǎng)提供哪些服務(wù)?二十六、請(qǐng)寫出JSP的幾個(gè)隱含內(nèi)置對(duì)象答:JSP中隱含內(nèi)置對(duì)象名稱類型注釋和范圍requestjavax.servlet.http.HttpServletRequestrequestresponsejavax.servlet.http.HttpServletResponseresponsepagejavax.lang.ObjectpageExceptionjava.lang.ThrowablepagepageContextjavax.servlet.jsp.PageContextpagesessionjavax.servlet.http.HttpSessionsessionapplicationjavax.servlet.ServletContextServletContextoutjavax.servlet.jsp.JspWriterOutputStreamconfigjavax.servlet.ServletConfigServletConfigJSP共有以下9種基本內(nèi)置組件(可與ASP的6種內(nèi)部組件相對(duì)應(yīng)):request用戶端請(qǐng)求,此請(qǐng)求會(huì)包含來(lái)自GET/POST請(qǐng)求的參數(shù)response網(wǎng)頁(yè)傳回用戶端的回應(yīng)pageJSP網(wǎng)頁(yè)本身exception針對(duì)錯(cuò)誤網(wǎng)頁(yè),未捕捉的例外pageContext網(wǎng)頁(yè)的屬性是在這里管理session與請(qǐng)求有關(guān)的會(huì)話期applicationservlet正在執(zhí)行的內(nèi)容out用來(lái)傳送回應(yīng)的輸出configServlet的構(gòu)架部件二十七、請(qǐng)你談?wù)凷SH整合答:SSH:Struts(表示層)+Spring(業(yè)務(wù)層)+Hibernate(持久層)Struts:Struts是一個(gè)表示層框架,主要作用是界面展示,接收請(qǐng)求,分發(fā)請(qǐng)求。在MVC框架中,Struts屬于VC層次,負(fù)責(zé)界面表現(xiàn),負(fù)責(zé)MVC關(guān)系的分發(fā)。(View:沿用JSP,HTTP,F(xiàn)orm,Tag,Resourse;Controller:ActionServlet,struts-config.xml,Action)Hibernate:Hibernate是一個(gè)持久層框架,它只負(fù)責(zé)與關(guān)系數(shù)據(jù)庫(kù)的操作。Spring:Spring是一個(gè)業(yè)務(wù)層框架,是一個(gè)整合的框架,能夠很好地黏合表示層與持久層。二十八、應(yīng)用服務(wù)器與WebServer的區(qū)別二十九、JavaServletAPI中forward()與redirect()的區(qū)別答:前者僅是容器中控制權(quán)的轉(zhuǎn)向,在客戶端瀏覽器地址欄中不會(huì)顯示出轉(zhuǎn)向后的地址;后者則是完全的跳轉(zhuǎn),瀏覽器將會(huì)得到跳轉(zhuǎn)的地址,并重新發(fā)送請(qǐng)求鏈接。這樣,從瀏覽器的地址欄中可以看到跳轉(zhuǎn)后的鏈接地址。所以,前者更加高效,在前者可以滿足需要時(shí),盡量使用forward()方法,并且,這樣也有助于隱藏實(shí)際的鏈接。在有些情況下,比如,需要跳轉(zhuǎn)到一個(gè)其它服務(wù)器上的資源,則必須使用sendRedirect()方法。三十、寫一個(gè)簡(jiǎn)單的C/S結(jié)構(gòu)程序,Java的通信編程,編程題(或問(wèn)答),用JAVASOCKET編程,讀服務(wù)器幾個(gè)字符,再寫入本地顯示?答:Server端程序:packagetest;.*;importjava.io.*;pu
溫馨提示
- 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ù)覽,若沒有圖紙預(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年家具定制居間售后服務(wù)合同3篇
- 二零二五年度奢侈品導(dǎo)購(gòu)代理合同2篇
- 二零二五年學(xué)校后勤保障中心保潔服務(wù)招標(biāo)合同2篇
- 二零二五年度家電產(chǎn)品代工與貼牌生產(chǎn)合同2篇
- 2025版商業(yè)空?qǐng)龅刈赓U合同范本-全面服務(wù)保障82篇
- 2025年度物業(yè)公司財(cái)務(wù)內(nèi)部控制與風(fēng)險(xiǎn)管理合同3篇
- 2025年度生態(tài)旅游區(qū)委托代建合同法律性質(zhì)及責(zé)任承擔(dān)解析3篇
- 二零二五年度建筑工地安全文明施工及綠色施工技術(shù)合同
- 二零二五年度按揭車抵押借款合同備案協(xié)議3篇
- 二零二五年度旅游住宿業(yè)短期貸款合同樣本2篇
- 培訓(xùn)互動(dòng)技巧
- 某銀行操作風(fēng)險(xiǎn)管理講義
- 男方報(bào)銷生育險(xiǎn)未就業(yè)承諾書
- DB63-T 1789-2021地方標(biāo)準(zhǔn)制定工作規(guī)范
- 口腔病歷書寫課件
- 初中數(shù)學(xué)學(xué)法指導(dǎo)課件
- 2022年林芝化學(xué)九上期中考試模擬試題含解析
- 北洋政府的黑暗統(tǒng)治優(yōu)秀教學(xué)課件
- 酒店組織架構(gòu)圖以及各崗位職責(zé)(完整版)
- Western blot 技術(shù)-詳細(xì)版
- 環(huán)氧樹脂固化
評(píng)論
0/150
提交評(píng)論