半半童學(xué)
java軟件工程師面試題集 EJB方面 1、有哪些內(nèi)容?分別用在什么場合? 和的區(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..... 2、EJB與JAVA BEAN的區(qū)別? 答:Java Bean 是可復(fù)用的組件,對Java Bean并沒有嚴(yán)格的規(guī)范,理論上講,任何一個Java類都可以是一個Bean。但通常情況下,由于Java Bean是被容器所創(chuàng)建(如Tomcat)的,所以Java Bean應(yīng)具有一個無參的構(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ī))。但EJB必須被布署在諸如Webspere、WebLogic這樣的容器中,EJB客戶從不直接訪問真正的EJB組件,而是通過其容器訪問。EJB容器是EJB組件的代理,EJB組件由容器所創(chuàng)建和管理??蛻敉ㄟ^容器來訪問真正的EJB組件。 3、EJB的基本架構(gòu) 答:一個EJB包括三個部分: Remote Interface 接口的代碼 package Beans; import ; import ; public interface Add extends EJBObject { //some method declare } Home Interface 接口的代碼 package Beans; import ; import ; import ; public interface AddHome extends EJBHome { //some method declare } EJB類的代碼 package Beans; import ; import ; import ; public class AddBean Implements SessionBean { //some method declare } J2EE,MVC方面 1、MVC的各個部分都有那些技術(shù)來實(shí)現(xiàn)?如何實(shí)現(xiàn)? 答:MVC是Model-View-Controller的簡寫。"Model" 代表的是應(yīng)用的業(yè)務(wù)邏輯(通過JavaBean,EJB組件實(shí)現(xiàn)), "View" 是應(yīng)用的表示面(由JSP頁面產(chǎn)生),"Controller" 是提供應(yīng)用的處理過程控制(一般是一個Servlet),通過這種設(shè)計模型把應(yīng)用邏輯,處理過程和顯示邏輯分成不同的組件實(shí)現(xiàn)。這些組件可以進(jìn)行交互和重用。 2、應(yīng)用服務(wù)器與WEB SERVER的區(qū)別? 希望大家補(bǔ)上,謝謝 3、J2EE是什么? 答:Je22是Sun公司提出的多層(multi-diered),分布式(distributed),基于組件(component-base)的企業(yè)級應(yīng)用模型(enterpriese application model).在這樣的一個應(yīng)用系統(tǒng)中,可按照功能劃分為不同的組件,這些組件又可在不同計算機(jī)上,并且處于相應(yīng)的層次(tier)中。所屬層次包括客戶層(clietn tier)組件,web層和組件,Business層和組件,企業(yè)信息系統(tǒng)(EIS)層。 4、WEB SERVICE名詞解釋。JSWDL開發(fā)包的介紹。JAXP、JAXM的解釋。SOAP、UDDI,WSDL解釋。 答:Web Service描述語言WSDL SOAP即簡單對象訪問協(xié)議(Simple Object Access Protocol),它是用于交換XML編碼信息的輕量級協(xié)議。 UDDI 的目的是為電子商務(wù)建立標(biāo)準(zhǔn);UDDI是一套基于Web的、分布式的、為Web Service提供的、信息注冊中心的實(shí)現(xiàn)標(biāo)準(zhǔn)規(guī)范,同時也包含一組使企業(yè)能將自身提供的Web Service注冊,以使別的企業(yè)能夠發(fā)現(xiàn)的訪問協(xié)議的實(shí)現(xiàn)標(biāo)準(zhǔn)。 5、BS與CS的聯(lián)系與區(qū)別。 希望大家補(bǔ)上,謝謝 6、STRUTS的應(yīng)用(如STRUTS架構(gòu)) 答:Struts是采用Java Servlet/JavaServer Pages技術(shù),開發(fā)Web應(yīng)用程序的開放源碼的framework。 采用Struts能開發(fā)出基于MVC(Model-View-Controller)設(shè)計模式的應(yīng)用構(gòu)架。 Struts有如下的主要功能: 一.包含一個controller servlet,能將用戶的請求發(fā)送到相應(yīng)的Action對象。 二.JSP自由tag庫,并且在controller servlet中提供關(guān)聯(lián)支持,幫助開發(fā)員創(chuàng)建交互式表單應(yīng)用。 三.提供了一系列實(shí)用對象:XML處理、通過Java reflection APIs自動處理JavaBeans屬性、國際化的提示和消息。 設(shè)計模式方面 1、開發(fā)中都用到了那些設(shè)計模式?用在什么場合? 答:每個模式都描述了一個在我們的環(huán)境中不斷出現(xiàn)的問題,然后描述了該問題的解決方案的核心。通過這種方式,你可以無數(shù)次地使用那些已有的解決方案,無需在重復(fù)相同的工作。主要用到了MVC的設(shè)計模式。用來開發(fā)JSP/Servlet或者J2EE的相關(guān)應(yīng)用。簡單工廠模式等。 2、UML方面 答:標(biāo)準(zhǔn)建模語言UML。用例圖,靜態(tài)圖(包括類圖、對象圖和包圖),行為圖,交互圖(順序圖,合作圖),實(shí)現(xiàn)圖, JavaScript方面 1、如何校驗(yàn)數(shù)字型? var re=/^d{1,8}$|.d{1,2}$/; var str=(i).value; var r=(re); if (r==null) { sign=-4; break; } else{ (i).value=parseFloat(str); } CORBA方面 1、CORBA是什么?用途是什么? 答:CORBA 標(biāo)準(zhǔn)是公共對象請求代理結(jié)構(gòu)(Common Object Request Broker Architecture),由對象管理組織 (Object Management Group,縮寫為 OMG)標(biāo)準(zhǔn)化。它的組成是接口定義語言(IDL), 語言綁定(binding:也譯為聯(lián)編)和允許應(yīng)用程序間互操作的協(xié)議。 其目的為: 用不同的程序設(shè)計語言書寫 在不同的進(jìn)程中運(yùn)行 為不同的操作系統(tǒng)開發(fā) LINUX方面 1、LINUX下線程,GDI類的解釋。 答:LINUX實(shí)現(xiàn)的就是基于核心輕量級進(jìn)程的"一對一"線程模型,一個線程實(shí)體對應(yīng)一個核心輕量級進(jìn)程,而線程之間的管理在核外函數(shù)庫中實(shí)現(xiàn)。 GDI類為圖像設(shè)備編程接口類庫。 1、面向?qū)ο蟮娜齻€基本特征 2、方法重載和方法重寫的概念和區(qū)別 3、接口和內(nèi)部類、抽象類的特性 4、文件讀寫的基本類 **5、串行化的注意事項以及如何實(shí)現(xiàn)串行化 6、線程的基本概念、線程的基本狀態(tài)以及狀態(tài)之間的關(guān)系 7、線程的同步、如何實(shí)現(xiàn)線程的同步 8、幾種常用的數(shù)據(jù)結(jié)構(gòu)及內(nèi)部實(shí)現(xiàn)原理。 9、Socket通信(TCP、UDP區(qū)別及Java實(shí)現(xiàn)方式) **10、Java的事件委托機(jī)制和垃圾回收機(jī)制 11、JDBC調(diào)用數(shù)據(jù)庫的基本步驟 **12、解析XML文件的幾種方式和區(qū)別 13、Java四種基本權(quán)限的定義 14、Java的國際化 二、JSP 1、至少要能說出7個隱含對象以及他們的區(qū)別 ** 2、forward 和redirect的區(qū)別 3、JSP的常用指令 三、servlet 1、什么情況下調(diào)用doGet()和doPost()? 2、servlet的init()方法和service()方法的區(qū)別 3、servlet的生命周期 4、如何現(xiàn)實(shí)servlet的單線程模式 5、servlet的配置 6、四種會話跟蹤技術(shù) 四、EJB **1、EJB容器提供的服務(wù) 主要提供聲明周期管理、代碼產(chǎn)生、持續(xù)性管理、安全、事務(wù)管理、鎖和并發(fā)行管理等服務(wù)。 2、EJB的角色和三個對象 EJB角色主要包括Bean開發(fā)者 應(yīng)用組裝者 部署者 系統(tǒng)管理員 EJB容器提供者 EJB服務(wù)器提供者 三個對象是Remote(Local)接口、Home(LocalHome)接口,Bean類 2、EJB的幾種類型 會話(Session)Bean ,實(shí)體(Entity)Bean 消息驅(qū)動的(Message Driven)Bean 會話Bean又可分為有狀態(tài)(Stateful)和無狀態(tài)(Stateless)兩種 實(shí)體Bean可分為Bean管理的持續(xù)性(BMP)和容器管理的持續(xù)性(CMP)兩種 3、bean 實(shí)例的生命周期 對于Stateless Session Bean、Entity Bean、Message Driven Bean一般存在緩沖池管理,而對于Entity Bean和Statefull Session Bean存在Cache管理,通常包含創(chuàng)建實(shí)例,設(shè)置上下文、創(chuàng)建EJB Object(create)、業(yè)務(wù)方法調(diào)用、remove等過程,對于存在緩沖池管理的Bean,在create之后實(shí)例并不從內(nèi)存清除,而是采用緩沖池調(diào)度機(jī)制不斷重用實(shí)例,而對于存在Cache管理的Bean則通過激活和去激活機(jī)制保持Bean的狀態(tài)并限制內(nèi)存中實(shí)例數(shù)量。 4、激活機(jī)制 以Statefull Session Bean 為例:其Cache大小決定了內(nèi)存中可以同時存在的Bean實(shí)例的數(shù)量,根據(jù)MRU或NRU算法,實(shí)例在激活和去激活狀態(tài)之間遷移,激活機(jī)制是當(dāng)客戶端調(diào)用某個EJB實(shí)例業(yè)務(wù)方法時,如果對應(yīng)EJB Object發(fā)現(xiàn)自己沒有綁定對應(yīng)的Bean實(shí)例則從其去激活Bean存儲中(通過序列化機(jī)制存儲實(shí)例)回復(fù)(激活)此實(shí)例。狀態(tài)變遷前會調(diào)用對應(yīng)的ejbActive和ejbPassivate方法。 5、remote接口和home接口主要作用 remote接口定義了業(yè)務(wù)方法,用于EJB客戶端調(diào)用業(yè)務(wù)方法 home接口是EJB工廠用于創(chuàng)建和移除查找EJB實(shí)例 6、客服端調(diào)用EJB對象的幾個基本步驟 一、 設(shè)置JNDI服務(wù)工廠以及JNDI服務(wù)地址系統(tǒng)屬性 二、 查找Home接口 三、 從Home接口調(diào)用Create方法創(chuàng)建Remote接口 四、 通過Remote接口調(diào)用其業(yè)務(wù)方法 五、數(shù)據(jù)庫 1、存儲過程的編寫 2、基本的SQL語句 六、weblogic 1、 如何給weblogic指定大小的內(nèi)存? 在啟動Weblogic的腳本中(位于所在Domian對應(yīng)服務(wù)器目錄下的startServerName),增加set MEM_ARGS=-Xms32m -Xmx200m,可以調(diào)整最小內(nèi)存為32M,最大200M 2、 如何設(shè)定的weblogic的熱啟動模式(開發(fā)模式)與產(chǎn)品發(fā)布模式? 可以在管理控制臺中修改對應(yīng)服務(wù)器的啟動模式為開發(fā)或產(chǎn)品模式之一?;蛘咝薷姆?wù)的啟動文件或者commenv文件,增加set PRODUCTION_MODE=true。 3、 如何啟動時不需輸入用戶名與密碼? 修改服務(wù)啟動文件,增加 WLS_USER和WLS_PW項。也可以在文件中增加加密過的用戶名和密碼. 4、 在weblogic管理制臺中對一個應(yīng)用域(或者說是一個網(wǎng)站,Domain)進(jìn)行jms及ejb或連接池等相關(guān)信息進(jìn)行配置后,實(shí)際保存在什么文件中? 保存在此Domain的文件中,它是服務(wù)器的核心配置文件。 5、 說說weblogic中一個Domain的缺省目錄結(jié)構(gòu)?比如要將一個簡單的放入何目錄下,然的在瀏覽器上就可打入http://主機(jī):端口號//就可以看到運(yùn)行結(jié)果了? 又比如這其中用到了一個自己寫的javaBean該如何辦? 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)用名。 6、 如何查看在weblogic中已經(jīng)發(fā)布的EJB? 可以使用管理控制臺,在它的Deployment中可以查看所有已發(fā)布的EJB 7、 如何在weblogic中進(jìn)行ssl配置與客戶端的認(rèn)證配置或說說j2ee(標(biāo)準(zhǔn))進(jìn)行ssl的配置 缺省安裝中使用和 KeyStore實(shí)現(xiàn)SSL,需要配置服務(wù)器使用Enable SSL,配置其端口,在產(chǎn)品模式下需要從CA獲取私有密鑰和數(shù)字證書,創(chuàng)建identity和trust keystore,裝載獲得的密鑰和數(shù)字證書??梢耘渲么薙SL連接是單向還是雙向的。 8、在weblogic中發(fā)布ejb需涉及到哪些配置文件 不同類型的EJB涉及的配置文件不同,都涉及到的配置文件包括實(shí)體Bean一般還需要 9、EJB需直接實(shí)現(xiàn)它的業(yè)務(wù)接口或Home接口嗎,請簡述理由. 遠(yuǎn)程接口和Home接口不需要直接實(shí)現(xiàn),他們的實(shí)現(xiàn)代碼是由服務(wù)器產(chǎn)生的,程序運(yùn)行中對應(yīng)實(shí)現(xiàn)類會作為對應(yīng)接口類型的實(shí)例被使用。 10、說說在weblogic中開發(fā)消息Bean時的persistent與non-persisten的差別 persistent方式的MDB可以保證消息傳遞的可靠性,也就是如果EJB容器出現(xiàn)問題而JMS服務(wù)器依然會將消息在此MDB可用的時候發(fā)送過來,而non-persistent方式的消息將被丟棄。 11、說說你所熟悉或聽說過的j2ee中的幾種常用模式?及對設(shè)計模式的一些看法 Session Facade Pattern:使用SessionBean訪問EntityBean Message Facade Pattern:實(shí)現(xiàn)異步調(diào)用 EJB Command Pattern:使用Command JavaBeans取代SessionBean,實(shí)現(xiàn)輕量級訪問 Data Transfer Object Factory:通過DTO Factory簡化EntityBean數(shù)據(jù)提供特性 Generic Attribute Access:通過AttibuteAccess接口簡化EntityBean數(shù)據(jù)提供特性 Business Interface:通過遠(yuǎn)程(本地)接口和Bean類實(shí)現(xiàn)相同接口規(guī)范業(yè)務(wù)邏輯一致性 EJB架構(gòu)的設(shè)計好壞將直接影響系統(tǒng)的性能、可擴(kuò)展性、可維護(hù)性、組件可重用性及開發(fā)效率。項目越復(fù)雜,項目隊伍越龐大則越能體現(xiàn)良好設(shè)計的重要性 from java-cn
六月的橙子
考試大綱: 1、掌握數(shù)制及其轉(zhuǎn)換、數(shù)據(jù)的機(jī)內(nèi)表示、算術(shù)和邏輯運(yùn)算、應(yīng)用數(shù)學(xué)的基礎(chǔ)知識; 2、了解計算機(jī)的組成以及各主要部件性能指標(biāo); 3、掌握操作系統(tǒng)、程序設(shè)計語言的基礎(chǔ)知識; 4、熟練掌握基本數(shù)據(jù)結(jié)構(gòu)和常用算法; 5、熟練掌握C程序設(shè)計語言以及C++、Java中的一種程序設(shè)計語言; 6、熟悉數(shù)據(jù)庫、網(wǎng)絡(luò)和多媒體的基礎(chǔ)知識; 7、了解軟件工程的基礎(chǔ)知識、軟件過程基本知識、軟件開發(fā)項目管理的常識; 8、了解常用信息技術(shù)標(biāo)準(zhǔn)、安全性以及有關(guān)法律、法規(guī)的基礎(chǔ)知識; 9、了解信息化及計算機(jī)應(yīng)用的基礎(chǔ)知識; 10、正確閱讀和理解計算機(jī)領(lǐng)域的簡單英文資料。 考試科目: 1、計算機(jī)與軟件工程基礎(chǔ)知識,考試時間為150分鐘,筆試,選擇題; 2、程序設(shè)計,考試時間為150分鐘,筆試,問答題。
優(yōu)質(zhì)工程師考試問答知識庫