應聘Java筆試時可能出現問題及其答案(第二版 第三部分)

EJB方面

94EJB2.0有哪些內容?分別用在什麼場合? EJB2.0EJB1.1的區別?
答:規範內容包括Bean提供者,應用程序裝配者,EJB容器,EJB配置工具,EJB服務提供者,系統管理員。這裏面,EJB容器是EJB之所以能夠運行的核心。EJB容器管理着EJB的創建,撤消,激活,去活,與數據庫的連接等等重要的核心工作。JSP,Servlet,EJB,JNDI,JDBC,JMS.....
95
EJBJAVA BEAN的區別?

答:Java Bean 是可複用的組件,對Java Bean並沒有嚴格的規範,理論上講,任何一個Java類都可以是一個Bean。但通常情況下,由於Java Bean是被容器所創建(如Tomcat)的,所以Java Bean應具有一個無參的構造器,另外,通常Java Bean還要實現Serializable接口用於實現Bean的持久性。Java Bean實際上相當於微軟COM模型中的本地進程內COM組件,它是不能被跨進程訪問的。Enterprise Java Bean 相當於DCOM,即分佈式組件。它是基於Java的遠程方法調用(RMI)技術的,所以EJB可以被遠程訪問(跨進程、跨計算機)。但EJB必須被佈署在諸如WebspereWebLogic這樣的容器中,EJB客戶從不直接訪問真正的EJB組件,而是通過其容器訪問。EJB容器是EJB組件的代理,EJB組件由容器所創建和管理。客戶通過容器來訪問真正的EJB組件。
96
EJB是基於哪些技術實現的?並說出SessionBeanEntityBean的區別,StatefulBeanStatelessBean的區別。
 
答:EJB包括Session BeanEntity BeanMessage Driven Bean,基於JNDIRMIJAT等技術實現。
SessionBean
J2EE應用程序中被用來完成一些服務器端的業務操作,例如訪問數據庫、調用其他EJB組件。EntityBean被用來代表應用系統中用到的數據。
對於客戶機,SessionBean是一種非持久性對象,它實現某些在服務器上運行的業務邏輯。
對於客戶機,EntityBean是一種持久性對象,它代表一個存儲在持久性存儲器中的實體的對象視圖,或是一個由現有企業應用程序實現的實體。
Session Bean 
還可以再細分爲 Stateful Session Bean  Stateless Session Bean ,這兩種的 Session Bean都可以將系統邏輯放在 method之中執行,不同的是 Stateful Session Bean 可以記錄呼叫者的狀態,因此通常來說,一個使用者會有一個相對應的 Stateful Session Bean 的實體。Stateless Session Bean 雖然也是邏輯組件,但是他卻不負責記錄使用者狀態,也就是說當使用者呼叫 Stateless Session Bean 的時候,EJB Container 並不會找尋特定的 Stateless Session Bean 的實體來執行這個 method。換言之,很可能數個使用者在執行某個 Stateless Session Bean  methods 時,會是同一個 Bean  Instance 在執行。從內存方面來看, Stateful Session Bean  Stateless Session Bean 比較, Stateful Session Bean 會消耗 J2EE Server 較多的內存,然而 Stateful Session Bean 的優勢卻在於他可以維持使用者的狀態。
97EJBJAVA BEAN的區別?
答:Java Bean 是可複用的組件,對Java Bean並沒有嚴格的規範,理論上講,任何一個Java類都可以是一個Bean。但通常情況下,由於Java Bean是被容器所創建(如Tomcat)的,所以Java Bean應具有一個無參的構造器,另外,通常Java Bean還要實現Serializable接口用於實現Bean的持久性。Java Bean實際上相當於微軟COM模型中的本地進程內COM組件,它是不能被跨進程訪問的。Enterprise Java Bean 相當於DCOM,即分佈式組件。它是基於Java的遠程方法調用(RMI)技術的,所以EJB可以被遠程訪問(跨進程、跨計算機)。但EJB必須被佈署在諸如WebspereWebLogic這樣的容器中,EJB客戶從不直接訪問真正的EJB組件,而是通過其容器訪問。EJB容器是EJB組件的代理,EJB組件由容器所創建和管理。客戶通過容器來訪問真正的EJB組件。
EJB包括(SessionBean,EntityBean)說出他們的生命週期,及如何管理事務的?
SessionBean
Stateless Session Bean 的生命週期是由容器決定的,當客戶機發出請求要建立一個Bean的實例時,EJB容器不一定要創建一個新的Bean的實例供客戶機調用,而是隨便找一個現有的實例提供給客戶機。當客戶機第一次調用一個Stateful Session Bean 時,容器必須立即在服務器中創建一個新的Bean實例,並關聯到客戶機上,以後此客戶機調用Stateful Session Bean 的方法時容器會把調用分派到與此客戶機相關聯的Bean實例。
EntityBean
Entity Beans能存活相對較長的時間,並且狀態是持續的。只要數據庫中的數據存在,Entity beans就一直存活。而不是按照應用程序或者服務進程來說的。即使EJB容器崩潰了,Entity beans也是存活的。Entity Beans生命週期能夠被容器或者 Beans自己管理。
EJB
通過以下技術管理實務:對象管理組織(OMG)的對象實務服務(OTS),Sun MicrosystemsTransaction ServiceJTS)、Java Transaction APIJTA),開發組(X/Open)的XA接口。
98
EJB的角色和三個對象
答:一個完整的基於EJB的分佈式計算結構由六個角色組成,這六個角色可以由不同的開發商提供,每個角色所作的工作必須遵循Sun公司提供的EJB規範,以保證彼此之間的兼容性。這六個角色分別是EJB組件開發者(Enterprise Bean Provider 、應用組合者(Application Assembler)、部署者(Deployer)、EJB 服務器提供者(EJB Server Provider)、EJB 容器提供者(EJB Container Provider)、系統管理員(System Administrator
三個對象是RemoteLocal)接口、HomeLocalHome)接口,Bean
99
EJB容器提供的服務
答:主要提供聲明週期管理、代碼產生、持續性管理、安全、事務管理、鎖和併發行管理等服務。
100
EJB規範規定EJB中禁止的操作有哪些? 
 答:1.不能操作線程和線程API(線程API指非線程對象的方法如notify,wait)2.不能操作awt3.不能實現服務器功能,4.不能對靜態屬生存取,5.不能使用IO操作直接存取文件系統,6.不能加載本地庫.7.不能將this作爲變量和返回,8.不能循環調用。

101
remote接口和home接口主要作用
答:remote接口定義了業務方法,用於EJB客戶端調用業務方法。
home
接口是EJB工廠用於創建和移除查找EJB實例
102
bean 實例的生命週期
答:對於Stateless Session BeanEntity BeanMessage Driven Bean一般存在緩衝池管理,而對於Entity BeanStatefull Session Bean存在Cache管理,通常包含創建實例,設置上下文、創建EJB Objectcreate)、業務方法調用、remove等過程,對於存在緩衝池管理的Bean,在create之後實例並不從內存清除,而是採用緩衝池調度機制不斷重用實例,而對於存在Cache管理的Bean則通過激活和去激活機制保持Bean的狀態並限制內存中實例數量。
103
EJB的激活機制
答:Stateful Session Bean 爲例:其Cache大小決定了內存中可以同時存在的Bean實例的數量,根據MRUNRU算法,實例在激活和去激活狀態之間遷移,激活機制是當客戶端調用某個EJB實例業務方法時,如果對應EJB Object發現自己沒有綁定對應的Bean實例則從其去激活Bean存儲中(通過序列化機制存儲實例)回覆(激活)此實例。狀態變遷前會調用對應的ejbActiveejbPassivate方法。
104
EJB的幾種類型
答:會話(SessionBean ,實體(EntityBean 消息驅動的(Message DrivenBean
會話Bean又可分爲有狀態(Stateful)和無狀態(Stateless)兩種

實體Bean可分爲Bean管理的持續性(BMP)和容器管理的持續性(CMP)兩種
105
、客服端調用EJB對象的幾個基本步驟
答:設置JNDI服務工廠以及JNDI服務地址系統屬性,查找Home接口,從Home接口調用Create方法創建Remote接口,通過Remote接口調用其業務方法。

應用服務器方面

106、如何給weblogic指定大小的內存
答:在啓動Weblogic的腳本中(位於所在Domian對應服務器目錄下的startServerName),增加set MEM_ARGS=-Xms32m -Xmx200m,可以調整最小內存爲32M,最大
200M
EJB
需直接實現它的業務接口或Home接口嗎,請簡述理由。

遠程接口和Home接口不需要直接實現,他們的實現代碼是由服務器產生的,程序運行中對應實現類會作爲對應接口類型的實例被使用。
107、應用服務器有那些?
答:BEA WebLogic ServerIBM WebSphere Application ServerOracle9i Application ServerjBossTomcat
108
、如何設定的weblogic的熱啓動模式(開發模式)與產品發佈模式
?
答:可以在管理控制檯中修改對應服務器的啓動模式爲開發或產品模式之一。或者修改服務的啓動文件或者commenv文件,增加set PRODUCTION_MODE=true

109
、如何啓動時不需輸入用戶名與密碼?
答:修改服務啓動文件,增加 WLS_USERWLS_PW項。也可以在boot.properties文件中增加加密過的用戶名和密碼
.
110
、在weblogic管理制臺中對一個應用域(或者說是一個網站,Domain)進行jmsejb或連接池等相關信息進行配置後,實際保存在什麼文件中?

答:保存在此Domainconfig.xml文件中,它是服務器的核心配置文件。
111
、說說weblogic中一個Domain的缺省目錄結構?比如要將一個簡單的helloWorld.jsp放入何目錄下,然的在瀏覽器上就可打入http://主機:端口號//helloword.jsp就可以看到運行結果了?  又比如這其中用到了一個自己寫的javaBean該如何辦?
答:Domain目錄服務器目錄applications,將應用目錄放在此目錄下將可以作爲應用訪問,如果是Web應用,應用目錄需要滿足Web應用目錄要求,jsp文件可以直接放在應用目錄中,Javabean需要放在應用目錄的WEB-INF目錄的classes目錄中,設置服務器的缺省應用將可以實現在瀏覽器上無需輸入應用名。

112
、在weblogic中發佈ejb需涉及到哪些配置文件
答:不同類型的EJB涉及的配置文件不同,都涉及到的配置文件包括ejb-jar.xml,weblogic-ejb-jar.xmlCMP實體Bean一般還需要weblogic-cmp-rdbms-jar.xml 
86
、如何在weblogic中進行ssl配置與客戶端的認證配置或說說j2ee(標準)進行ssl的配置

缺省安裝中使用DemoIdentity.jksDemoTrust.jks  KeyStore實現SSL,需要配置服務器使用Enable SSL,配置其端口,在產品模式下需要從CA獲取私有密鑰和數字證書,創建identitytrust keystore,裝載獲得的密鑰和數字證書。可以配置此SSL連接是單向還是雙向的。
113
、如何查看在weblogic中已經發布的EJB?
答:可以使用管理控制檯,在它的Deployment中可以查看所有已發佈的
EJB
說說在weblogic中開發消息Bean時的persistentnon-persisten的差別

persistent
方式的MDB可以保證消息傳遞的可靠性,也就是如果EJB容器出現問題而JMS服務器依然會將消息在此MDB可用的時候發送過來,而nonpersistent方式的消息將被丟棄。

J2EE,MVC方面

114MVC的各個部分都有那些技術來實現?如何實現?
答:MVCModelViewController的簡寫。"Model" 代表的是應用的業務邏輯(通過JavaBeanEJB組件實現), "View" 是應用的表示面(由JSP頁面產生),"Controller" 是提供應用的處理過程控制(一般是一個Servlet),通過這種設計模型把應用邏輯,處理過程和顯示邏輯分成不同的組件實現。這些組件可以進行交互和重用。
115
J2EE是什麼?
答:Je22Sun公司提出的多層(multi-diered),分佈式(distributed),基於組件(component-base)的企業級應用模型(enterpriese application model).在這樣的一個應用系統中,可按照功能劃分爲不同的組件,這些組件又可在不同計算機上,並且處於相應的層次(tier)中。所屬層次包括客戶層(clietn tier)組件,web層和組件,Business層和組件,企業信息系統(EIS)層。
116
WEB SERVICE名詞解釋。JSWDL開發包的介紹。JAXPJAXM的解釋。SOAPUDDI,WSDL解釋。
答:Web Service描述語言WSDL
SOAP
即簡單對象訪問協議(Simple Object Access Protocol),它是用於交換XML編碼信息的輕量級協議。

UDDI
的目的是爲電子商務建立標準;UDDI是一套基於Web的、分佈式的、爲Web Service提供的、信息註冊中心的實現標準規範,同時也包含一組使企業能將自身提供的Web Service註冊,以使別的企業能夠發現的訪問協議的實現標準。
117
J2EE是技術還是平臺還是框架?
答:J2EE本身是一個標準,一個爲企業分佈式應用的開發提供的標準平臺。
 J2EE
也是一個框架,包括JDBCJNDIRMIJMSEJBJTA等技術。
118STRUTS的應用(STRUTS架構)
答:Struts是採用Java Servlet/JavaServer Pages技術,開發Web應用程序的開放源碼的framework 採用Struts能開發出基於MVC(Model-View-Controller)設計模式的應用構架。 Struts有如下的主要功能:
.包含一個controller servlet,能將用戶的請求發送到相應的Action對象。

.JSP自由tag庫,並且在controller servlet中提供關聯支持,幫助開發員創建交互式表單應用。

.提供了一系列實用對象:XML處理、通過Java reflection APIs自動處理JavaBeans屬性、國際化的提示和消息。

119WEB SERVICE名詞解釋。JSWDL開發包的介紹。JAXPJAXM的解釋。SOAPUDDI,WSDL解釋。 
答:Web ServiceWeb Service是基於網絡的、分佈式的模塊化組件,它執行特定的任務,遵守具體的技術規範,這些規範使得Web Service能與其他兼容的組件進行互操作。

JAXP(Java API for XML Parsing) 
定義了在Java中使用DOM, SAX, XSLT的通用的接口。這樣在你的程序中你只要使用這些通用的接口,當你需要改變具體的實現時候也不需要修改代碼。
JAXM(Java API for XML Messaging) 
是爲SOAP通信提供訪問方法和傳輸機制的API
WSDL
是一種 XML 格式,用於將網絡服務描述爲一組端點,這些端點對包含面向文檔信息或面向過程信息的消息進行操作。這種格式首先對操作和消息進行抽象描述,然後將其綁定到具體的網絡協議和消息格式上以定義端點。相關的具體端點即組合成爲抽象端點(服務)。
SOAP
即簡單對象訪問協議(Simple Object Access Protocol),它是用於交換XML編碼信息的輕量級協議。 
UDDI 
的目的是爲電子商務建立標準;UDDI是一套基於Web的、分佈式的、爲Web Service提供的、信息註冊中心的實現標準規範,同時也包含一組使企業能將自身提供的Web Service註冊,以使別的企業能夠發現的訪問協議的實現標準。

120
C/S  B/S 區別:
答:
有如下八個方面的不同:
1.硬件環境不同
  C/S 一般建立在專用的網絡上小範圍裏的網絡環境局域網之間再通過專門服務器提供連接和數據交換服務
.
  B/S 建立在廣域網之上的不必是專門的網絡硬件環境,例與電話上網租用設備信息自己管理有比C/S更強的適應範圍一般只要有操作系統和瀏覽器就行
 
2.對安全要求不同
 
  C/S 一般面向相對固定的用戶羣對信息安全的控制能力很強一般高度機密的信息系統採用C/S 結構適宜可以通過B/S發佈部分可公開信息
.
  B/S 建立在廣域網之上對安全的控制能力相對弱可能面向不可知的用戶。

3.對程序架構不同 
  C/S 程序可以更加註重流程可以對權限多層次校驗對系統運行速度可以較少考慮
.
  B/S 對安全以及訪問速度的多重的考慮建立在需要更加優化的基礎之上C/S有更高的要求 B/S結構的程序架構是發展的趨勢MS.Net系列的BizTalk 2000 Exchange 2000全面支持網絡的構件搭建的系統. SUN IBM推的JavaBean 構件技術等,使 B/S更加成熟

4.軟件重用不同
 
  C/S 程序可以不可避免的整體性考慮構件的重用性不如在B/S要求下的構件的重用性好
.
  B/S 對的多重結構,要求構件相對獨立的功能能夠相對較好的重用.就入買來的餐桌可以再利用,而不是做在牆上的石頭桌子
 
5.系統維護不同
  
  C/S 程序由於整體性必須整體考察處理出現的問題以及系統升級升級難可能是再做一個全新的系統

  B/S 構件組成,方面構件個別的更換,實現系統的無縫升級系統維護開銷減到最小.用戶從網上自己下載安裝就可以實現升級
6.處理問題不同
 
  C/S 程序可以處理用戶面固定並且在相同區域安全要求高需求與操作系統相關應該都是相同的系統

  B/S 建立在廣域網上面向不同的用戶羣分散地域這是C/S無法作到的與操作系統平臺關係最小
7.用戶接口不同
 
  C/S 多是建立的Window平臺上,表現方法有限,對程序員普遍要求較高

  B/S 建立在瀏覽器上有更加豐富和生動的表現方式與用戶交流並且大部分難度減低,減低開發成本
8.信息流不同
 
  C/S 程序一般是典型的中央集權的機械式處理交互性相對低

  B/S 信息流向可變化, B-B B-C B-G等信息、流向的變化更像交易中心。
121、什麼是web容器
答:
給處於其中的應用程序組件(JSPSERVLET)提供一個環境,使JSP,SERVLET直接更容器中的環境變量接**互,不必關注其它系統問題。主要有WEB服務器來實現。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。該容器提供的接口嚴格遵守J2EE規範中的WEB APPLICATION 標準。我們把遵守以上標準的WEB服務器就叫做J2EE中的WEB容器。122、什麼是EJB容器
答:
Enterprise java bean 容器。更具有行業領域特色。他提供給運行在其中的組件EJB各種管理功能。只要滿足J2EE規範的EJB放入該容器,馬上就會被容器進行高效率的管理。並且可以通過現成的接口來獲得系統級別的服務。例如郵件服務、事務管理
123什麼是JNDI
答:
Java Naming & Directory InterfaceJAVA命名目錄服務。主要提供的功能是:提供一個目錄系統,讓其它各地的應用程序在其上面留下自己的索引,從而滿足快速查找和定位分佈式應用程序的功能。
124、什麼是JMS
答:
Java Message ServiceJAVA消息服務。主要實現各個應用程序之間的通訊。包括點對點和廣播。
125、什麼是JTA
答:
Java Transaction APIJAVA事務服務。提供各種分佈式事務服務。應用程序只需調用其提供的接口即可。
126、什麼是JAF
答:
Java Action FrameWorkJAVA安全認證框架。提供一些安全控制方面的框架。讓開發者通過各種部署和自定義實現自己的個性安全控制策略。
RMI/IIOP:
Remote Method Invocation /internet對象請求中介協議)他們主要用於通過遠程調用服務。例如,遠程有一臺計算機上運行一個程序,它提供股票分析服務,我們可以在本地計算機上實現對其直接調用。當然這是要通過一定的規範才能在異構的系統之間進行通信。RMIJAVA特有的。
127MVC的各個部分都有那些技術來實現?如何實現
答:
MVCModelViewController的簡寫。"Model" 代表的是應用的業務邏輯(通過JavaBeanEJB組件實現), "View" 是應用的表示面(由JSP頁面產生),"Controller" 是提供應用的處理過程控制(一般是一個Servlet),通過這種設計模型把應用邏輯,處理過程和顯示邏輯分成不同的組件實現。這些組件可以進行交互和重用。

設計模式方面

128、開發中都用到了那些設計模式?用在什麼場合?
答:每個模式都描述了一個在我們的環境中不斷出現的問題,然後描述了該問題的解決方案的核心。通過這種方式,你可以無數次地使用那些已有的解決方案,無需在重複相同的工作。主要用到了MVC的設計模式。用來開發JSP/Servlet或者J2EE的相關應用。簡單工廠模式等。
129、說說你所熟悉或聽說過的j2ee中的幾種常用模式?及對設計模式的一些看法
答:Session Facade Pattern:使用SessionBean訪問EntityBean
Message Facade Pattern
:實現異步調用

EJB Command Pattern
:使用Command JavaBeans取代SessionBean,實現輕量級訪問
Data Transfer Object Factory
:通過DTO Factory簡化EntityBean數據提供特性
Generic Attribute Access
:通過AttibuteAccess接口簡化EntityBean數據提供特性
Business Interface
:通過遠程(本地)接口和Bean類實現相同接口規範業務邏輯一致性
EJB架構的設計好壞將直接影響系統的性能、可擴展性、可維護性、組件可重用性及開發效率。項目越複雜,項目隊伍越龐大則越能體現良好設計的重要性。
130j2ee常用的設計模式?說明工廠模式。
 答:Java中的23種設計模式:
Factory
(工廠模式),      Builder(建造模式),       Factory Method(工廠方法模式),
Prototype
(原始模型模式),Singleton(單例模式),    Facade(門面模式),
Adapter
(適配器模式),    Bridge(橋樑模式),        Composite(合成模式),
Decorator
(裝飾模式),    Flyweight(享元模式),     Proxy(代理模式),
Command
(命令模式),      Interpreter(解釋器模式), Visitor(訪問者模式),
Iterator
(迭代子模式),   Mediator(調停者模式),    Memento(備忘錄模式),
Observer
(觀察者模式),   State(狀態模式),         Strategy(策略模式),
Template Method
(模板方法模式), Chain Of Responsibleity(責任鏈模式)
工廠模式:工廠模式是一種經常被使用到的模式,根據工廠模式實現的類可以根據提供的數據生成一組類中某一個類的實例,通常這一組類有一個公共的抽象父類並且實現了相同的方法,但是這些方法針對不同的數據進行了不同的操作。首先需要定義一個基類,該類的子類通過不同的方法實現了基類中的方法。然後需要定義一個工廠類,工廠類可以根據條件生成不同的子類實例。當得到子類的實例後,開發人員可以調用基類中的方法而不必考慮到底返回的是哪一個子類的實例。
131UML方面
答:標準建模語言UML。用例圖,靜態圖(包括類圖、對象圖和包圖),行爲圖,交互圖(順序圖,合作圖),實現圖,
UML方面 

CORBA方面

132CORBA是什麼?用途是什麼?
答:CORBA 標準是公共對象請求代理結構(Common Object Request Broker Architecture),由對象管理組織 (Object Management Group,縮寫爲 OMG)標準化。它的組成是接口定義語言(IDL), 語言綁定(binding:也譯爲聯編)和允許應用程序間互操作的協議。 其目的爲:
用不同的程序設計語言書寫
在不同的進程中運行

爲不同的操作系統開發


LINUX方面

133LINUX下線程,GDI類的解釋。
答:LINUX實現的就是基於核心輕量級進程的"一對一"線程模型,一個線程實體對應一個核心輕量級進程,而線程之間的管理在覈外函數庫中實現。
GDI類爲圖像設備編程接口類庫。
134LINUX下線程,GDI類的解釋。

LINUX實現的就是基於核心輕量級進程的"一對一"線程模型,一個線程實體對應一個核心輕量級進程,而線程之間的管理在覈外函數庫中實現。 
GDI
類爲圖像設備編程接口類庫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章