1:EJB:
答:EnterpriseJavaBean相當于DCOM,即分布式組件。它是基于Java的遠程方法調(diào)用(RMI)技術(shù)的,所以EJB可以被遠程訪問(跨進程、跨計算機)。但EJB必須被部署在諸如Webspere、WebLogic這樣的容器中,EJB客戶從不直接訪問真正的EJB組件,而是通過其容器訪問。EJB容器是EJB組件的代理,EJB組件由容器所創(chuàng)建和管理??蛻敉ㄟ^容器來訪問真正的EJB組件。
答:Enterprisejavabean容器。更具有行業(yè)領(lǐng)域特色。他提供給運行在其中的組件EJB各種管理功能。只要滿足J2EE規(guī)范的EJB放入該容器,馬上就會被容器進行高效率的管理。并且可以通過現(xiàn)成的接口來獲得系統(tǒng)級別的服務。例如郵件服務、事務管理。
RMI:(RemoteMethodInvocation)遠程方法調(diào)用
答:RMI(RemoteMethodInvocation,遠程方法調(diào)用)是用Java在JDK1.1中實現(xiàn)的,它大大增強了Java開發(fā)分布式應用的能力。Java作為一種風靡一時的網(wǎng)絡(luò)開發(fā)語言,其巨大的威力就體現(xiàn)在它強大的開發(fā)分布式網(wǎng)絡(luò)應用的能力上,而RMI就是開發(fā)百分之百純Java的網(wǎng)絡(luò)分布式應用系統(tǒng)的核心解決方案之一。其實它可以被看作是RPC的Java版本。但是傳統(tǒng)RPC并不能很好地應用于分布式對象系統(tǒng)。而JavaRMI則支持存儲于不同地址空間的程序級對象之間彼此進行通信,實現(xiàn)遠程對象之間的無縫遠程調(diào)用。
2:EJB種類、作用
答:EntityBean--用于描述一個永久的對象。
SessionBean--描述任務或者工作流的模型,并且協(xié)調(diào)Bean之間的交互。
Message-DriverBean--用在基于J2EE應用程序中處理異步JMS消息。
3:實體bean,CMP,BMP寫法區(qū)別?
答:CMPentitybean不需要在bean中編寫數(shù)據(jù)庫操作的代碼;可以讓容器做這件事。
BMPentitybean在bean類中直接編寫數(shù)據(jù)庫調(diào)用,以及對固定存儲的任意類型的訪問,來管理bean的持久性。
4:Find與Select方法的區(qū)別?
答:FinderSelect
返回值單對象或者集合,是該bean類型的EJBObject(s),EJBLocalObject(s).單個或者多個(集合或集)對象.是該bean類型或CMR相關(guān)類型EJBObject(s)或EJBLocalObject(s)也可能是CMP(域),CMP的集合或一個CMR域.
聲明位置在遠程和/或本地home接口中Bean類中的抽象方法
方法名FindXxx()EjbSelectXxx-bean類
可見度公開給客戶端面向entitybean類內(nèi)部,供其他bean方法使用
實例Bean池任意隨機bean實例當前實例,但若調(diào)用來自home方法,則為任意隨機實例.
5:主接口方法的定義與寫法?
答:生命周期方法建方法-該方法的返回值是bean的組件接口,寫法為creatXxx
無狀態(tài)sessionbean必須個且僅有一個無參的創(chuàng)建方法.
有狀態(tài)sessionbean必須含有至少一個創(chuàng)建方法.Entitybean可以有0至多個創(chuàng)建方法.
Finder方法-Finder方法對于entitybean有效,通過它可以在數(shù)據(jù)庫中查找到entitybean對應的持久性數(shù)據(jù).每一個entitybean的home接口必須有一個findByPrimaryKey方法,并以實體的主鍵為參數(shù).可以定制Finder方法.Home方法-Home方法也僅對entitybean有效.Home方法能夠返回任意類型的序列化對象,但并不實際生成bean的實例.
6:主接口與組件接口的區(qū)別?
答:主接口提供EJB客戶端對bean的訪問.定義了bean的生命周期方法,并提供了bean的基本生命周期管理功能,如創(chuàng)建,刪除,查找.messagedrivernbean不含有home接口.組件接口是由enterprisebean的客戶端用來取得bean的訪問能力.它定義了對于客戶端可見的業(yè)務方法.組件接口中的業(yè)務方法必須符合bean類中的實現(xiàn).
7、JMS消息傳遞的方式?
答:點到點(point-to-point)消息通過隊列進行發(fā)送.發(fā)布與訂閱(publish-and-subscribe,pub/sub)消息通過標題傳遞.
8、EJB客戶端訪問后臺EJB的代碼?
答:p192,p193
9、有狀態(tài)sessionbean與無狀態(tài)sessionbean的區(qū)別?
答:statefulsessionbean維護客戶端會話狀態(tài).它們必須屬于一個且只屬于一個客戶端.激活/鈍化,開銷大.statelesssession不維護一個客戶端的會話狀態(tài)它們被放入實例池中,因此可被多個用戶共用,開銷小,效率高。
10、本地視圖與遠程視圖的區(qū)別?
答:遠程視圖-它的想法就是遠程調(diào)用將在兩臺不同JVM之間執(zhí)行.遠程調(diào)用這些操作使得相關(guān)網(wǎng)絡(luò)開銷會更高與對象的位置無關(guān).也不會在乎是否在一個JVM.
本地視圖-它的想法就是本地調(diào)用將在相同的JVM中執(zhí)行.沒有網(wǎng)絡(luò)開銷.操作效率更高,因為客戶端使用本地對象調(diào)用bean上的服務,限制在本地實現(xiàn)中,而且不需要做到與位置無關(guān).
以上就是天津卓眾教育Java培訓機構(gòu)小編介紹的“經(jīng)典Java開發(fā)筆試面試題目”的內(nèi)容,希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務。