以前整理了一篇文章《有感:應(yīng)聘Java筆試時(shí)可能出現(xiàn)問題及其答案》發(fā)布到csdn的blog上,很多人看了以后認(rèn)為很有用處,特別是對(duì)于即將參加java面試的朋友們,很多人給我反饋了意見或者向我請(qǐng)教問題,實(shí)在是不敢當(dāng),本人也是菜鳥一個(gè),只是做了一點(diǎn)整理工作而已,所有問題與答案都來自于網(wǎng)絡(luò)。
最近由于換工作,又收集到了一點(diǎn)資料,所以我決定再整理一個(gè)版本出來,再一次聲明,題目與答案都來自于網(wǎng)絡(luò),本人不對(duì)題目與答案的完整性與正確性做出任何承諾,僅做參考。
當(dāng)然,本人歡迎任何人對(duì)本文章中的錯(cuò)誤答案加以指正或者提出更好的解決方案,并請(qǐng)發(fā)給我,我定期進(jìn)行相關(guān)更新,謝謝!本人也歡迎同道中人進(jìn)行技術(shù)相關(guān)方面的討論。 如有任何意見與建議請(qǐng)通過QQ:6045306,Mail:huijunzi@21cn.com與我聯(lián)系。
EJB方面
94、EJB2.0有哪些內(nèi)容?分別用在什么場(chǎng)合? EJB2.0和EJB1.1的區(qū)別?
答:規(guī)范內(nèi)容包括Bean提供者,應(yīng)用程序裝配者,EJB容器,EJB配置工具,EJB服務(wù)提供者,系統(tǒng)管理員。這里面,EJB容器是EJB之所以能夠運(yùn)行的核心。EJB容器管理著EJB的創(chuàng)建,撤消,激活,去活,與數(shù)據(jù)庫的連接等等重要的核心工作。JSP,Servlet,EJB,JNDI,JDBC,JMS.....
95、EJB與JAVA BEAN的區(qū)別?
答:Java Bean 是可復(fù)用的組件,對(duì)Java Bean并沒有嚴(yán)格的規(guī)范,理論上講,任何一個(gè)Java類都可以是一個(gè)Bean。但通常情況下,由于Java Bean是被容器所創(chuàng)建(如Tomcat)的,所以Java Bean應(yīng)具有一個(gè)無參的構(gòu)造器,另外,通常Java Bean還要實(shí)現(xiàn)Serializable接口用于實(shí)現(xiàn)Bean的持久性。Java Bean實(shí)際上相當(dāng)于微軟COM模型中的本地進(jìn)程內(nèi)COM組件,它是不能被跨進(jìn)程訪問的。Enterprise Java Bean 相當(dāng)于DCOM,即分布式組件。它是基于Java的遠(yuǎn)程方法調(diào)用(RMI)技術(shù)的,所以EJB可以被遠(yuǎn)程訪問(跨進(jìn)程、跨計(jì)算機(jī))。但EJB必須被布署在諸如Webspere、WebLogic這樣的容器中,EJB客戶從不直接訪問真正的EJB組件,而是通過其容器訪問。EJB容器是EJB組件的代理,EJB組件由容器所創(chuàng)建和管理??蛻敉ㄟ^容器來訪問真正的EJB組件。
96、EJB是基于哪些技術(shù)實(shí)現(xiàn)的?并說出SessionBean和EntityBean的區(qū)別,StatefulBean和StatelessBean的區(qū)別。
答:EJB包括Session Bean、Entity Bean、Message Driven Bean,基于JNDI、RMI、JAT等技術(shù)實(shí)現(xiàn)。
SessionBean在J2EE應(yīng)用程序中被用來完成一些服務(wù)器端的業(yè)務(wù)操作,例如訪問數(shù)據(jù)庫、調(diào)用其他EJB組件。EntityBean被用來代表應(yīng)用系統(tǒng)中用到的數(shù)據(jù)。
對(duì)于客戶機(jī),SessionBean是一種非持久性對(duì)象,它實(shí)現(xiàn)某些在服務(wù)器上運(yùn)行的業(yè)務(wù)邏輯。
對(duì)于客戶機(jī),EntityBean是一種持久性對(duì)象,它代表一個(gè)存儲(chǔ)在持久性存儲(chǔ)器中的實(shí)體的對(duì)象視圖,或是一個(gè)由現(xiàn)有企業(yè)應(yīng)用程序?qū)崿F(xiàn)的實(shí)體。
Session Bean 還可以再細(xì)分為 Stateful Session Bean 與 Stateless Session Bean ,這兩種的 Session Bean都可以將系統(tǒng)邏輯放在 method之中執(zhí)行,不同的是 Stateful Session Bean 可以記錄呼叫者的狀態(tài),因此通常來說,一個(gè)使用者會(huì)有一個(gè)相對(duì)應(yīng)的 Stateful Session Bean 的實(shí)體。Stateless Session Bean 雖然也是邏輯組件,但是他卻不負(fù)責(zé)記錄使用者狀態(tài),也就是說當(dāng)使用者呼叫 Stateless Session Bean 的時(shí)候,EJB Container 并不會(huì)找尋特定的 Stateless Session Bean 的實(shí)體來執(zhí)行這個(gè) method。換言之,很可能數(shù)個(gè)使用者在執(zhí)行某個(gè) Stateless Session Bean 的 methods 時(shí),會(huì)是同一個(gè) Bean 的 Instance 在執(zhí)行。從內(nèi)存方面來看, Stateful Session Bean 與 Stateless Session Bean 比較, Stateful Session Bean 會(huì)消耗 J2EE Server 較多的內(nèi)存,然而 Stateful Session Bean 的優(yōu)勢(shì)卻在于他可以維持使用者的狀態(tài)。
97、EJB與JAVA BEAN的區(qū)別?
答:Java Bean 是可復(fù)用的組件,對(duì)Java Bean并沒有嚴(yán)格的規(guī)范,理論上講,任何一個(gè)Java類都可以是一個(gè)Bean。但通常情況下,由于Java Bean是被容器所創(chuàng)建(如Tomcat)的,所以Java Bean應(yīng)具有一個(gè)無參的構(gòu)造器,另外,通常Java Bean還要實(shí)現(xiàn)Serializable接口用于實(shí)現(xiàn)Bean的持久性。Java Bean實(shí)際上相當(dāng)于微軟COM模型中的本地進(jìn)程內(nèi)COM組件,它是不能被跨進(jìn)程訪問的。Enterprise Java Bean 相當(dāng)于DCOM,即分布式組件。它是基于Java的遠(yuǎn)程方法調(diào)用(RMI)技術(shù)的,所以EJB可以被遠(yuǎn)程訪問(跨進(jìn)程、跨計(jì)算機(jī))。但EJB必須被布署在諸如Webspere、WebLogic這樣的容器中,EJB客戶從不直接訪問真正的EJB組件,而是通過其容器訪問。EJB容器是EJB組件的代理,EJB組件由容器所創(chuàng)建和管理??蛻敉ㄟ^容器來訪問真正的EJB組件。
EJB包括(SessionBean,EntityBean)說出他們的生命周期,及如何管理事務(wù)的?
SessionBean:Stateless Session Bean 的生命周期是由容器決定的,當(dāng)客戶機(jī)發(fā)出請(qǐng)求要建立一個(gè)Bean的實(shí)例時(shí),EJB容器不一定要?jiǎng)?chuàng)建一個(gè)新的Bean的實(shí)例供客戶機(jī)調(diào)用,而是隨便找一個(gè)現(xiàn)有的實(shí)例提供給客戶機(jī)。當(dāng)客戶機(jī)第一次調(diào)用一個(gè)Stateful Session Bean 時(shí),容器必須立即在服務(wù)器中創(chuàng)建一個(gè)新的Bean實(shí)例,并關(guān)聯(lián)到客戶機(jī)上,以后此客戶機(jī)調(diào)用Stateful Session Bean 的方法時(shí)容器會(huì)把調(diào)用分派到與此客戶機(jī)相關(guān)聯(lián)的Bean實(shí)例。
EntityBean:Entity Beans能存活相對(duì)較長(zhǎng)的時(shí)間,并且狀態(tài)是持續(xù)的。只要數(shù)據(jù)庫中的數(shù)據(jù)存在,Entity beans就一直存活。而不是按照應(yīng)用程序或者服務(wù)進(jìn)程來說的。即使EJB容器崩潰了,Entity beans也是存活的。Entity Beans生命周期能夠被容器或者 Beans自己管理。
EJB通過以下技術(shù)管理實(shí)務(wù):對(duì)象管理組織(OMG)的對(duì)象實(shí)務(wù)服務(wù)(OTS),Sun Microsystems的Transaction Service(JTS)、Java Transaction API(JTA),開發(fā)組(X/Open)的XA接口。
98、EJB的角色和三個(gè)對(duì)象
答:一個(gè)完整的基于EJB的分布式計(jì)算結(jié)構(gòu)由六個(gè)角色組成,這六個(gè)角色可以由不同的開發(fā)商提供,每個(gè)角色所作的工作必須遵循Sun公司提供的EJB規(guī)范,以保證彼此之間的兼容性。這六個(gè)角色分別是EJB組件開發(fā)者(Enterprise Bean Provider) 、應(yīng)用組合者(Application Assembler)、部署者(Deployer)、EJB 服務(wù)器提供者(EJB Server Provider)、EJB 容器提供者(EJB Container Provider)、系統(tǒng)管理員(System Administrator)
三個(gè)對(duì)象是Remote(Local)接口、Home(LocalHome)接口,Bean類
99、EJB容器提供的服務(wù)
答:主要提供聲明周期管理、代碼產(chǎn)生、持續(xù)性管理、安全、事務(wù)管理、鎖和并發(fā)行管理等服務(wù)。
100、EJB規(guī)范規(guī)定EJB中禁止的操作有哪些?
答:1.不能操作線程和線程API(線程API指非線程對(duì)象的方法如notify,wait等),2.不能操作awt,3.不能實(shí)現(xiàn)服務(wù)器功能,4.不能對(duì)靜態(tài)屬生存取,5.不能使用IO操作直接存取文件系統(tǒng),6.不能加載本地庫.,7.不能將this作為變量和返回,8.不能循環(huán)調(diào)用。
101、remote接口和home接口主要作用
答:remote接口定義了業(yè)務(wù)方法,用于EJB客戶端調(diào)用業(yè)務(wù)方法。
home接口是EJB工廠用于創(chuàng)建和移除查找EJB實(shí)例
102、bean 實(shí)例的生命周期
答:對(duì)于Stateless Session Bean、Entity Bean、Message Driven Bean一般存在緩沖池管理,而對(duì)于Entity Bean和Statefull Session Bean存在Cache管理,通常包含創(chuàng)建實(shí)例,設(shè)置上下文、創(chuàng)建EJB Object(create)、業(yè)務(wù)方法調(diào)用、remove等過程,對(duì)于存在緩沖池管理的Bean,在create之后實(shí)例并不從內(nèi)存清除,而是采用緩沖池調(diào)度機(jī)制不斷重用實(shí)例,而對(duì)于存在Cache管理的Bean則通過激活和去激活機(jī)制保持Bean的狀態(tài)并限制內(nèi)存中實(shí)例數(shù)量。
103、EJB的激活機(jī)制
答:以Stateful Session Bean 為例:其Cache大小決定了內(nèi)存中可以同時(shí)存在的Bean實(shí)例的數(shù)量,根據(jù)MRU或NRU算法,實(shí)例在激活和去激活狀態(tài)之間遷移,激活機(jī)制是當(dāng)客戶端調(diào)用某個(gè)EJB實(shí)例業(yè)務(wù)方法時(shí),如果對(duì)應(yīng)EJB Object發(fā)現(xiàn)自己沒有綁定對(duì)應(yīng)的Bean實(shí)例則從其去激活Bean存儲(chǔ)中(通過序列化機(jī)制存儲(chǔ)實(shí)例)回復(fù)(激活)此實(shí)例。狀態(tài)變遷前會(huì)調(diào)用對(duì)應(yīng)的ejbActive和ejbPassivate方法。
104、EJB的幾種類型
答:會(huì)話(Session)Bean ,實(shí)體(Entity)Bean 消息驅(qū)動(dòng)的(Message Driven)Bean
會(huì)話Bean又可分為有狀態(tài)(Stateful)和無狀態(tài)(Stateless)兩種
實(shí)體Bean可分為Bean管理的持續(xù)性(BMP)和容器管理的持續(xù)性(CMP)兩種
105、客服端調(diào)用EJB對(duì)象的幾個(gè)基本步驟
答:設(shè)置JNDI服務(wù)工廠以及JNDI服務(wù)地址系統(tǒng)屬性,查找Home接口,從Home接口調(diào)用Create方法創(chuàng)建Remote接口,通過Remote接口調(diào)用其業(yè)務(wù)方法。
應(yīng)用服務(wù)器方面
106、如何給weblogic指定大小的內(nèi)存?
答:在啟動(dòng)Weblogic的腳本中(位于所在Domian對(duì)應(yīng)服務(wù)器目錄下的startServerName),增加set MEM_ARGS=-Xms32m -Xmx200m,可以調(diào)整最小內(nèi)存為32M,最大200M
EJB需直接實(shí)現(xiàn)它的業(yè)務(wù)接口或Home接口嗎,請(qǐng)簡(jiǎn)述理由。
遠(yuǎn)程接口和Home接口不需要直接實(shí)現(xiàn),他們的實(shí)現(xiàn)代碼是由服務(wù)器產(chǎn)生的,程序運(yùn)行中對(duì)應(yīng)實(shí)現(xiàn)類會(huì)作為對(duì)應(yīng)接口類型的實(shí)例被使用。
107、應(yīng)用服務(wù)器有那些?
答:BEA WebLogic Server,IBM WebSphere Application Server,Oracle9i Application Server,jBoss,Tomcat
108、如何設(shè)定的weblogic的熱啟動(dòng)模式(開發(fā)模式)與產(chǎn)品發(fā)布模式?
答:可以在管理控制臺(tái)中修改對(duì)應(yīng)服務(wù)器的啟動(dòng)模式為開發(fā)或產(chǎn)品模式之一。或者修改服務(wù)的啟動(dòng)文件或者commenv文件,增加set PRODUCTION_MODE=true。
109、如何啟動(dòng)時(shí)不需輸入用戶名與密碼?
答:修改服務(wù)啟動(dòng)文件,增加 WLS_USER和WLS_PW項(xiàng)。也可以在boot.properties文件中增加加密過的用戶名和密碼.
110、在weblogic管理制臺(tái)中對(duì)一個(gè)應(yīng)用域(或者說是一個(gè)網(wǎng)站,Domain)進(jìn)行jms及ejb或連接池等相關(guān)信息進(jìn)行配置后,實(shí)際保存在什么文件中?
答:保存在此Domain的config.xml文件中,它是服務(wù)器的核心配置文件。
111、說說weblogic中一個(gè)Domain的缺省目錄結(jié)構(gòu)?比如要將一個(gè)簡(jiǎn)單的helloWorld.jsp放入何目錄下,然的在瀏覽器上就可打入
答:Domain目錄服務(wù)器目錄applications,將應(yīng)用目錄放在此目錄下將可以作為應(yīng)用訪問,如果是Web應(yīng)用,應(yīng)用目錄需要滿足Web應(yīng)用目錄要求,jsp文件可以直接放在應(yīng)用目錄中,Javabean需要放在應(yīng)用目錄的WEB-INF目錄的classes目錄中,設(shè)置服務(wù)器的缺省應(yīng)用將可以實(shí)現(xiàn)在瀏覽器上無需輸入應(yīng)用名。
112、在weblogic中發(fā)布ejb需涉及到哪些配置文件
答:不同類型的EJB涉及的配置文件不同,都涉及到的配置文件包括ejb-jar.xml,weblogic-ejb-jar.xmlCMP實(shí)體Bean一般還需要weblogic-cmp-rdbms-jar.xml
86、如何在weblogic中進(jìn)行ssl配置與客戶端的認(rèn)證配置或說說j2ee(標(biāo)準(zhǔn))進(jìn)行ssl的配置
缺省安裝中使用DemoIdentity.jks和DemoTrust.jks KeyStore實(shí)現(xiàn)SSL,需要配置服務(wù)器使用Enable SSL,配置其端口,在產(chǎn)品模式下需要從CA獲取私有密鑰和數(shù)字證書,創(chuàng)建identity和trust keystore,裝載獲得的密鑰和數(shù)字證書??梢耘渲么?/font>SSL連接是單向還是雙向的。
113、如何查看在weblogic中已經(jīng)發(fā)布的EJB?
答:可以使用管理控制臺(tái),在它的Deployment中可以查看所有已發(fā)布的EJB
說說在weblogic中開發(fā)消息Bean時(shí)的persistent與non-persisten的差別
persistent方式的MDB可以保證消息傳遞的可靠性,也就是如果EJB容器出現(xiàn)問題而JMS服務(wù)器依然會(huì)將消息在此MDB可用的時(shí)候發(fā)送過來,而non-persistent方式的消息將被丟棄。
J2EE,MVC方面
114、MVC的各個(gè)部分都有那些技術(shù)來實(shí)現(xiàn)?如何實(shí)現(xiàn)?
答:MVC是Model-View-Controller的簡(jiǎn)寫。"Model" 代表的是應(yīng)用的業(yè)務(wù)邏輯(通過JavaBean,EJB組件實(shí)現(xiàn)), "View" 是應(yīng)用的表示面(由JSP頁面產(chǎn)生),"Controller" 是提供應(yīng)用的處理過程控制(一般是一個(gè)Servlet),通過這種設(shè)計(jì)模型把應(yīng)用邏輯,處理過程和顯示邏輯分成不同的組件實(shí)現(xiàn)。這些組件可以進(jìn)行交互和重用。
115、J2EE是什么?
答:Je22是Sun公司提出的多層(multi-diered),分布式(distributed),基于組件(component-base)的企業(yè)級(jí)應(yīng)用模型(enterpriese application model).在這樣的一個(gè)應(yīng)用系統(tǒng)中,可按照功能劃分為不同的組件,這些組件又可在不同計(jì)算機(jī)上,并且處于相應(yīng)的層次(tier)中。所屬層次包括客戶層(clietn tier)組件,web層和組件,Business層和組件,企業(yè)信息系統(tǒng)(EIS)層。
116、WEB SERVICE名詞解釋。JSWDL開發(fā)包的介紹。JAXP、JAXM的解釋。SOAP、UDDI,WSDL解釋。
答:Web Service描述語言WSDL
SOAP即簡(jiǎn)單對(duì)象訪問協(xié)議(Simple Object Access Protocol),它是用于交換XML編碼信息的輕量級(jí)協(xié)議。
UDDI 的目的是為電子商務(wù)建立標(biāo)準(zhǔn);UDDI是一套基于Web的、分布式的、為Web Service提供的、信息注冊(cè)中心的實(shí)現(xiàn)標(biāo)準(zhǔn)規(guī)范,同時(shí)也包含一組使企業(yè)能將自身提供的Web Service注冊(cè),以使別的企業(yè)能夠發(fā)現(xiàn)的訪問協(xié)議的實(shí)現(xiàn)標(biāo)準(zhǔn)。
117、J2EE是技術(shù)還是平臺(tái)還是框架?
答:J2EE本身是一個(gè)標(biāo)準(zhǔn),一個(gè)為企業(yè)分布式應(yīng)用的開發(fā)提供的標(biāo)準(zhǔn)平臺(tái)。
J2EE也是一個(gè)框架,包括JDBC、JNDI、RMI、JMS、EJB、JTA等技術(shù)。
118、STRUTS的應(yīng)用(如STRUTS架構(gòu))
答:Struts是采用Java Servlet/JavaServer Pages技術(shù),開發(fā)Web應(yīng)用程序的開放源碼的framework。 采用Struts能開發(fā)出基于MVC(Model-View-Controller)設(shè)計(jì)模式的應(yīng)用構(gòu)架。 Struts有如下的主要功能:
一.包含一個(gè)controller servlet,能將用戶的請(qǐng)求發(fā)送到相應(yīng)的Action對(duì)象。
二.JSP自由tag庫,并且在controller servlet中提供關(guān)聯(lián)支持,幫助開發(fā)員創(chuàng)建交互式表單應(yīng)用。
三.提供了一系列實(shí)用對(duì)象:XML處理、通過Java reflection APIs自動(dòng)處理JavaBeans屬性、國際化的提示和消息。
119、WEB SERVICE名詞解釋。JSWDL開發(fā)包的介紹。JAXP、JAXM的解釋。SOAP、UDDI,WSDL解釋。
答:Web ServiceWeb Service是基于網(wǎng)絡(luò)的、分布式的模塊化組件,它執(zhí)行特定的任務(wù),遵守具體的技術(shù)規(guī)范,這些規(guī)范使得Web Service能與其他兼容的組件進(jìn)行互操作。
JAXP(Java API for XML Parsing) 定義了在Java中使用DOM, SAX, XSLT的通用的接口。這樣在你的程序中你只要使用這些通用的接口,當(dāng)你需要改變具體的實(shí)現(xiàn)時(shí)候也不需要修改代碼。
JAXM(Java API for XML Messaging) 是為SOAP通信提供訪問方法和傳輸機(jī)制的API。
WSDL是一種 XML 格式,用于將網(wǎng)絡(luò)服務(wù)描述為一組端點(diǎn),這些端點(diǎn)對(duì)包含面向文檔信息或面向過程信息的消息進(jìn)行操作。這種格式首先對(duì)操作和消息進(jìn)行抽象描述,然后將其綁定到具體的網(wǎng)絡(luò)協(xié)議和消息格式上以定義端點(diǎn)。相關(guān)的具體端點(diǎn)即組合成為抽象端點(diǎn)(服務(wù))。
SOAP即簡(jiǎn)單對(duì)象訪問協(xié)議(Simple Object Access Protocol),它是用于交換XML編碼信息的輕量級(jí)協(xié)議。
UDDI 的目的是為電子商務(wù)建立標(biāo)準(zhǔn);UDDI是一套基于Web的、分布式的、為Web Service提供的、信息注冊(cè)中心的實(shí)現(xiàn)標(biāo)準(zhǔn)規(guī)范,同時(shí)也包含一組使企業(yè)能將自身提供的Web Service注冊(cè),以使別的企業(yè)能夠發(fā)現(xiàn)的訪問協(xié)議的實(shí)現(xiàn)標(biāo)準(zhǔn)。
120、C/S 與 B/S 區(qū)別:
答:有如下八個(gè)方面的不同:
1.硬件環(huán)境不同:
C/S 一般建立在專用的網(wǎng)絡(luò)上, 小范圍里的網(wǎng)絡(luò)環(huán)境, 局域網(wǎng)之間再通過專門服務(wù)器提供連接和數(shù)據(jù)交換服務(wù).
B/S 建立在廣域網(wǎng)之上的, 不必是專門的網(wǎng)絡(luò)硬件環(huán)境,例與電話上網(wǎng), 租用設(shè)備. 信息自己管理. 有比C/S更強(qiáng)的適應(yīng)范圍, 一般只要有操作系統(tǒng)和瀏覽器就行
2.對(duì)安全要求不同
C/S 一般面向相對(duì)固定的用戶群, 對(duì)信息安全的控制能力很強(qiáng). 一般高度機(jī)密的信息系統(tǒng)采用C/S 結(jié)構(gòu)適宜. 可以通過B/S發(fā)布部分可公開信息.
B/S 建立在廣域網(wǎng)之上, 對(duì)安全的控制能力相對(duì)弱, 可能面向不可知的用戶。
3.對(duì)程序架構(gòu)不同
C/S 程序可以更加注重流程, 可以對(duì)權(quán)限多層次校驗(yàn), 對(duì)系統(tǒng)運(yùn)行速度可以較少考慮.
B/S 對(duì)安全以及訪問速度的多重的考慮, 建立在需要更加優(yōu)化的基礎(chǔ)之上. 比C/S有更高的要求 B/S結(jié)構(gòu)的程序架構(gòu)是發(fā)展的趨勢(shì), 從MS的.Net系列的BizTalk 2000 Exchange 2000等, 全面支持網(wǎng)絡(luò)的構(gòu)件搭建的系統(tǒng). SUN 和IBM推的JavaBean 構(gòu)件技術(shù)等,使 B/S更加成熟.
4.軟件重用不同
C/S 程序可以不可避免的整體性考慮, 構(gòu)件的重用性不如在B/S要求下的構(gòu)件的重用性好.
B/S 對(duì)的多重結(jié)構(gòu),要求構(gòu)件相對(duì)獨(dú)立的功能. 能夠相對(duì)較好的重用.就入買來的餐桌可以再利用,而不是做在墻上的石頭桌子
5.系統(tǒng)維護(hù)不同
C/S 程序由于整體性, 必須整體考察, 處理出現(xiàn)的問題以及系統(tǒng)升級(jí). 升級(jí)難. 可能是再做一個(gè)全新的系統(tǒng)
B/S 構(gòu)件組成,方面構(gòu)件個(gè)別的更換,實(shí)現(xiàn)系統(tǒng)的無縫升級(jí). 系統(tǒng)維護(hù)開銷減到最小.用戶從網(wǎng)上自己下載安裝就可以實(shí)現(xiàn)升級(jí).
6.處理問題不同
C/S 程序可以處理用戶面固定, 并且在相同區(qū)域, 安全要求高需求, 與操作系統(tǒng)相關(guān). 應(yīng)該都是相同的系統(tǒng)
B/S 建立在廣域網(wǎng)上, 面向不同的用戶群, 分散地域, 這是C/S無法作到的. 與操作系統(tǒng)平臺(tái)關(guān)系最小.
7.用戶接口不同
C/S 多是建立的Window平臺(tái)上,表現(xiàn)方法有限,對(duì)程序員普遍要求較高
B/S 建立在瀏覽器上, 有更加豐富和生動(dòng)的表現(xiàn)方式與用戶交流. 并且大部分難度減低,減低開發(fā)成本.
8.信息流不同
C/S 程序一般是典型的中央集權(quán)的機(jī)械式處理, 交互性相對(duì)低
B/S 信息流向可變化, B-B B-C B-G等信息、流向的變化, 更像交易中心。
121、什么是web容器
答:給處于其中的應(yīng)用程序組件(JSP,SERVLET)提供一個(gè)環(huán)境,使JSP,SERVLET直接更容器中的環(huán)境變量接**互,不必關(guān)注其它系統(tǒng)問題。主要有WEB服務(wù)器來實(shí)現(xiàn)。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。該容器提供的接口嚴(yán)格遵守J2EE規(guī)范中的WEB APPLICATION 標(biāo)準(zhǔn)。我們把遵守以上標(biāo)準(zhǔn)的WEB服務(wù)器就叫做J2EE中的WEB容器。122、什么是EJB容器
答:Enterprise java bean 容器。更具有行業(yè)領(lǐng)域特色。他提供給運(yùn)行在其中的組件EJB各種管理功能。只要滿足J2EE規(guī)范的EJB放入該容器,馬上就會(huì)被容器進(jìn)行高效率的管理。并且可以通過現(xiàn)成的接口來獲得系統(tǒng)級(jí)別的服務(wù)。例如郵件服務(wù)、事務(wù)管理
123、什么是JNDI
答:(Java Naming & Directory Interface)JAVA命名目錄服務(wù)。主要提供的功能是:提供一個(gè)目錄系統(tǒng),讓其它各地的應(yīng)用程序在其上面留下自己的索引,從而滿足快速查找和定位分布式應(yīng)用程序的功能。
124、什么是JMS
答:(Java Message Service)JAVA消息服務(wù)。主要實(shí)現(xiàn)各個(gè)應(yīng)用程序之間的通訊。包括點(diǎn)對(duì)點(diǎn)和廣播。
125、什么是JTA
答:(Java Transaction API)JAVA事務(wù)服務(wù)。提供各種分布式事務(wù)服務(wù)。應(yīng)用程序只需調(diào)用其提供的接口即可。
126、什么是JAF
答:(Java Action FrameWork)JAVA安全認(rèn)證框架。提供一些安全控制方面的框架。讓開發(fā)者通過各種部署和自定義實(shí)現(xiàn)自己的個(gè)性安全控制策略。
RMI/IIOP:(Remote Method Invocation /internet對(duì)象請(qǐng)求中介協(xié)議)他們主要用于通過遠(yuǎn)程調(diào)用服務(wù)。例如,遠(yuǎn)程有一臺(tái)計(jì)算機(jī)上運(yùn)行一個(gè)程序,它提供股票分析服務(wù),我們可以在本地計(jì)算機(jī)上實(shí)現(xiàn)對(duì)其直接調(diào)用。當(dāng)然這是要通過一定的規(guī)范才能在異構(gòu)的系統(tǒng)之間進(jìn)行通信。RMI是JAVA特有的。
127、MVC的各個(gè)部分都有那些技術(shù)來實(shí)現(xiàn)?如何實(shí)現(xiàn)?
答:MVC是Model-View-Controller的簡(jiǎn)寫。"Model" 代表的是應(yīng)用的業(yè)務(wù)邏輯(通過JavaBean,EJB組件實(shí)現(xiàn)), "View" 是應(yīng)用的表示面(由JSP頁面產(chǎn)生),"Controller" 是提供應(yīng)用的處理過程控制(一般是一個(gè)Servlet),通過這種設(shè)計(jì)模型把應(yīng)用邏輯,處理過程和顯示邏輯分成不同的組件實(shí)現(xiàn)。這些組件可以進(jìn)行交互和重用。
設(shè)計(jì)模式方面
128、開發(fā)中都用到了那些設(shè)計(jì)模式?用在什么場(chǎng)合?
答:每個(gè)模式都描述了一個(gè)在我們的環(huán)境中不斷出現(xiàn)的問題,然后描述了該問題的解決方案的核心。通過這種方式,你可以無數(shù)次地使用那些已有的解決方案,無需在重復(fù)相同的工作。主要用到了MVC的設(shè)計(jì)模式。用來開發(fā)JSP/Servlet或者J2EE的相關(guān)應(yīng)用。簡(jiǎn)單工廠模式等。
129、說說你所熟悉或聽說過的j2ee中的幾種常用模式?及對(duì)設(shè)計(jì)模式的一些看法
答:Session Facade Pattern:使用SessionBean訪問EntityBean
Message Facade Pattern:實(shí)現(xiàn)異步調(diào)用
EJB Command Pattern:使用Command JavaBeans取代SessionBean,實(shí)現(xiàn)輕量級(jí)訪問
Data Transfer Object Factory:通過DTO Factory簡(jiǎn)化EntityBean數(shù)據(jù)提供特性
Generic Attribute Access:通過AttibuteAccess接口簡(jiǎn)化EntityBean數(shù)據(jù)提供特性
Business Interface:通過遠(yuǎn)程(本地)接口和Bean類實(shí)現(xiàn)相同接口規(guī)范業(yè)務(wù)邏輯一致性
EJB架構(gòu)的設(shè)計(jì)好壞將直接影響系統(tǒng)的性能、可擴(kuò)展性、可維護(hù)性、組件可重用性及開發(fā)效率。項(xiàng)目越復(fù)雜,項(xiàng)目隊(duì)伍越龐大則越能體現(xiàn)良好設(shè)計(jì)的重要性。
130、j2ee常用的設(shè)計(jì)模式?說明工廠模式。
答:Java中的23種設(shè)計(jì)模式:
Factory(工廠模式), Builder(建造模式), Factory Method(工廠方法模式),
Prototype(原始模型模式),Singleton(單例模式), Facade(門面模式),
Adapter(適配器模式), Bridge(橋梁模式), Composite(合成模式),
Decorator(裝飾模式), Flyweight(享元模式), Proxy(代理模式),
Command(命令模式), Interpreter(解釋器模式), Visitor(訪問者模式),
Iterator(迭代子模式), Mediator(調(diào)停者模式), Memento(備忘錄模式),
Observer(觀察者模式), State(狀態(tài)模式), Strategy(策略模式),
Template Method(模板方法模式), Chain Of Responsibleity(責(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í)例。
131、UML方面
答:標(biāo)準(zhǔn)建模語言UML。用例圖,靜態(tài)圖(包括類圖、對(duì)象圖和包圖),行為圖,交互圖(順序圖,合作圖),實(shí)現(xiàn)圖,
UML方面
CORBA方面
132、CORBA是什么?用途是什么?
答:CORBA 標(biāo)準(zhǔn)是公共對(duì)象請(qǐng)求代理結(jié)構(gòu)(Common Object Request Broker Architecture),由對(duì)象管理組織 (Object Management Group,縮寫為 OMG)標(biāo)準(zhǔn)化。它的組成是接口定義語言(IDL), 語言綁定(binding:也譯為聯(lián)編)和允許應(yīng)用程序間互操作的協(xié)議。 其目的為:
用不同的程序設(shè)計(jì)語言書寫
在不同的進(jìn)程中運(yùn)行
為不同的操作系統(tǒng)開發(fā)
LINUX方面
133、LINUX下線程,GDI類的解釋。
答:LINUX實(shí)現(xiàn)的就是基于核心輕量級(jí)進(jìn)程的"一對(duì)一"線程模型,一個(gè)線程實(shí)體對(duì)應(yīng)一個(gè)核心輕量級(jí)進(jìn)程,而線程之間的管理在核外函數(shù)庫中實(shí)現(xiàn)。
GDI類為圖像設(shè)備編程接口類庫。
134、LINUX下線程,GDI類的解釋。
LINUX實(shí)現(xiàn)的就是基于核心輕量級(jí)進(jìn)程的"一對(duì)一"線程模型,一個(gè)線程實(shí)體對(duì)應(yīng)一個(gè)核心輕量級(jí)進(jìn)程,而線程之間的管理在核外函數(shù)庫中實(shí)現(xiàn)。
GDI類為圖像設(shè)備編程接口類庫。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=495431
聯(lián)系客服