Java面試

73EJB容器提供的服務
主要提供聲明週期管理、代碼產生、持續性管理、安全、事務管理、鎖和併發行管理等服務。
74EJB規範規定EJB中禁止的操作有哪些?
1.
不能操作線程和線程API(線程API指非線程對象的方法如notify,wait)
2.
不能操作awt
3.
不能實現服務器功能,
4.
不能對靜態屬生存取,
5.
不能使用IO操作直接存取文件系統,
6.
不能加載本地庫.
7.
不能將this作爲變量和返回,
8.
不能循環調用。
75remote接口和home接口主要作用
remote
接口定義了業務方法,用於EJB客戶端調用業務方法。
home
接口是EJB工廠用於創建和移除查找EJB實例
76bean 實例的生命週期
對於Statele Se ion BeanEntity BeanMe age Driven Bean一般存在緩衝池管理,而對於Entity BeanStatefull Se ion Bean存在Cache管理,通常包含創建實例,設置上下文、創建EJB Objectcreate)、業務方法調用、remove等過程,對於存在緩衝池管理的Bean,在create之後實例並不從內存清除,而是採用緩衝池調度機制不斷重用實例,而對於存在Cache管理的Bean則通過激活和去激活機制保持Bean的狀態並限制內存中實例數量。
77EJB的激活機制
Stateful Se ion Bean 爲例:其Cache大小決定了內存中可以同時存在的Bean實例的數量,根據MRUNRU算法,實例在激活和去激活狀態之間遷移,激活機制是當客戶端調用某個EJB實例業務方法時,如果對應EJB Object發現自己沒有綁定對應的Bean實例則從其去激活Bean存儲中(通過序列化機制存儲實例)回覆(激活)此實例。狀態變遷前會調用對應的 ejbActiveej a ivate方法。
78EJB的幾種類型
會話(Se ionBean ,實體(EntityBean 消息驅動的(Me age DrivenBean
會話Bean又可分爲有狀態(Stateful)和無狀態(Statele )兩種

實體Bean可分爲Bean管理的持續性(BMP)和容器管理的持續性(CMP)兩種
79、客服端調用EJB對象的幾個基本步驟
設置JNDI服務工廠以及JNDI服務地址系統屬性,查找Home接口,從Home接口調用Create方法創建Remote接口,通過Remote接口調用其業務方法。
80、如何給weblogic指定大小的內存?
在啓動Weblogic的腳本中(位於所在Domian對應服務器目錄下的startServerName),增加set MEM_ARGS=-Xms32m -Xmx200m,可以調整最小內存爲32M,最大200M

81、如何設定的weblogic的熱啓動模式(開發模式)與產品發佈模式?
可以在管理控制檯中修改對應服務器的啓動模式爲開發或產品模式之一。或者修改服務的啓動文件或者commenv文件,增加set PRODUCTION_MODE=true
82、如何啓動時不需輸入用戶名與密碼?
修改服務啓動文件,增加 WLS_USERWLS_PW項。也可以在boot.properties文件中增加加密過的用戶名和密碼.
83、在weblogic管理制臺中對一個應用域(或者說是一個網站,Domain)進行jmsejb或連接池等相關信息進行配置後,實際保存在什麼文件中?
保存在此Domainconfig.xml文件中,它是服務器的核心配置文件。
84、說說weblogic中一個Domain的缺省目錄結構?比如要將一個簡單的helloWorld.j 放入何目錄下,然的在瀏覽器上就可打入 http://主機:端口號//helloword.j 就可以看到運行結果了? 又比如這其中用到了一個自己寫的javaBean該如何辦?
Domain
目錄服務器目錄a licatio ,將應用目錄放在此目錄下將可以作爲應用訪問,如果是Web應用,應用目錄需要滿足Web應用目錄要求,j 文件可以直接放在應用目錄中,Javabean需要放在應用目錄的WEB-INF目錄的class es目錄中,設置服務器的缺省應用將可以實現在瀏覽器上無需輸入應用名。
85、在weblogic中發佈ejb需涉及到哪些配置文件
不同類型的EJB涉及的配置文件不同,都涉及到的配置文件包括ejb-jar.xml,weblogic-ejb-jar.xmlCMP實體Bean一般還需要weblogic-cmp-rdbms-jar.xml
86、如何在weblogic中進行 l配置與客戶端的認證配置或說說j2ee(標準)進行 l的配置
缺省安裝中使用DemoIdentity.jksDemoTrust.jk KeyStore實現 L,需要配置服務器使用Enable L,配置其端口,在產品模式下需要從CA獲取私有密鑰和數字證書,創建identitytrust keystore,裝載獲得的密鑰和數字證書。可以配置此 L連接是單向還是雙向的。
87、如何查看在weblogic中已經發布的EJB?
可以使用管理控制檯,在它的Deployment中可以查看所有已發佈的EJB
88CORBA是什麼?用途是什麼?
CORBA 標準是公共對象請求代理結構(Common Object Request Broker Architecture),由對象管理組織 (Object Management Group,縮寫爲 OMG)標準化。它的組成是接口定義語言(IDL), 語言綁定(binding:也譯爲聯編)和允許應用程序間互操作的協議。其目的爲:用不同的程序設計語言書寫在不同的進程中運行,爲不同的操作系統開發。

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

91Servlet執行時一般實現哪幾個方法?
public void init(ServletConfig config)
public ServletConfig getServletConfig()
public String getServletInfo()
public void service(ServletRequest request,ServletRe o e re o e)
public void destroy()
92j2ee常用的設計模式?說明工廠模式。

Java
中的23種設計模式:
Factory
(工廠模式), Builder(建造模式), Factory Method(工廠方法模式),
Prototype
(原始模型模式),Singleton(單例模式), Facade(門面模式),
Adapter
(適配器模式), Bridge(橋樑模式), Composite(合成模式),
Decorator
(裝飾模式), Flyweight(享元模式), Proxy(代理模式),
Command
(命令模式), Interpreter(解釋器模式), Visitor(訪問者模式),
Iterator
(迭代子模式), Mediator(調停者模式), Memento(備忘錄模式),
O erver
(觀察者模式), State(狀態模式), Strategy(策略模式),
Template Method
(模板方法模式), Chain Of Re o ibleity(責任鏈模式)工廠模式:工廠模式是一種經常被使用到的模式,根據工廠模式實現的類可以根據提供的數據生成一組類中某一個類的實例,通常這一組類有一個公共的抽象父類並且實現了相同的方法,但是這些方法針對不同的數據進行了不同的操作。首先需要定義一個基類,該類的子類通過不同的方法實現了基類中的方法。然後需要定義一個工廠類,工廠類可以根據條件生成不同的子類實例。當得到子類的實例後,開發人員可以調用基類中的方法而不必考慮到底返回的是哪一個子類的實例。
93EJB需直接實現它的業務接口或Home接口嗎,請簡述理由。 遠程接口和Home接口不需要直接實現,他們的實現代碼是由服務器產生的,程序運行中對應實現類會作爲對應接口類型的實例被使用。

94、排序都有哪幾種方法?請列舉。用JAVA實現一個快速排序。 排序的方法有:插入排序(直接插入排序、希爾排序),交換排序(冒泡排序、快速排序),選擇排序(直接選擇排序、堆排序),歸併排序,分配排序(箱排序、基數排序)快速排序的僞代碼。/ /使用快速排序方法對a[ 0 :n- 1 ]排序從a[ 0 :n- 1 ]中選擇一個元素作爲m i d d l e,該元素爲支點把餘下的元素分割爲兩段left r i g h t,使得l e f t中的元素都小於等於支點,而right 中的元素都大於等於支點遞歸地使用快速排序方法對left 進行排序遞歸地使用快速排序方法對right 進行排序所得結果爲l e f t + m i d d l e + r i g h t95、請對以下在J2EE中常用的名詞進行解釋(或簡單描述)
web
容器:給處於其中的應用程序組件(J SERVLET)提供一個環境,使J ,SERVLET直接更容器中的環境變量接口交互,不必關注其它系統問題。主要有WEB服務器來實現。例如:TOMCAT,WEBLOGIC,WE HERE等。該容器提供的接口嚴格遵守J2EE規範中的WEB A LICATION 標準。我們把遵守以上標準的WEB服務器就叫做J2EE中的WEB容器。

EJB
容器:Enterprise java bean 容器。更具有行業領域特色。他提供給運行在其中的組件EJB各種管理功能。只要滿足J2EE規範的EJB放入該容器,馬上就會被容器進行高效率的管理。並且可以通過現成的接口來獲得系統級別的服務。例如郵件服務、事務管理。
JNDI
:(Java Naming &am Directory InterfaceJAVA命名目錄服務。主要提供的功能是:提供一個目錄系統,讓其它各地的應用程序在其上面留下自己的索引,從而滿足快速查找和定位分佈式應用程序的功能。

JMS:(Java Meage ServiceJAVA消息服務。主要實現各個應用程序之間的通訊。包括點對點和廣播。
JTA
:(Java Tra action APIJAVA事務服務。提供各種分佈式事務服務。應用程序只需調用其提供的接口即可。
JAF
:(Java Action FrameWorkJAVA安全認證框架。提供一些安全控制方面的框架。讓開發者通過各種部署和自定義實現自己的個性安全控制策略。
RMI/IIOP:
Remote Method Invocation /internet對象請求中介協議)他們主要用於通過遠程調用服務。例如,遠程有一臺計算機上運行一個程序,它提供股票分析服務,我們可以在本地計算機上實現對其直接調用。當然這是要通過一定的規範才能在異構的系統之間進行通信。RMIJAVA特有的。
96JAVA語言如何進行異常處理,關鍵字:throws,throw,try,catch,finally分別代表什麼意義?在try塊中可以拋出異常嗎?
Java
通過面向對象的方法進行異常處理,把各種不同的異常進行分類,並提供了良好的接口。在Java中,每個異常都是一個對象,它是Throwable類或其它子類的實例。當一個方法出現異常後便拋出一個異常對象,該對象中包含有異常信息,調用這個對象的方法可以捕獲到這個異常並進行處理。Java的異常處理是通過5個關鍵詞來實現的:trycatchthrowthrowsfinally。一般情況下是用try來執行一段程序,如果出現異常,系統會拋出(throws)一個異常,這時候你可以通過它的類型來捕捉(catch)它,或最後(finally)由缺省處理器來處理。
try來指定一塊預防所有"異常"的程序。緊跟在try程序後面,應包含一個catch子句來指定你想要捕捉的"異常"的類型。
throw
語句用來明確地拋出一個"異常"
throws
用來標明一個成員函數可能拋出的各種"異常"
Finally
爲確保一段代碼不管發生什麼"異常"都被執行一段代碼。
可以在一個成員函數調用的外面寫一個try語句,在這個成員函數內部寫另一個try語句保護其他代碼。每當遇到一個try語句,"異常"的框架就放到堆棧上面,直到所有的try語句都完成。如果下一級的try語句沒有對某種"異常"進行處理,堆棧就會展開,直到遇到有處理這種"異常"try語句。
97、一個".java"源文件中是否可以包括多個類(不是內部類)?有什麼限制?
可以。必須只有一個類名與文件名相同。
98MVC的各個部分都有那些技術來實現?如何實現?
MVC
ModelViewController的簡寫。"Model" 代表的是應用的業務邏輯(通過
JavaBeanEJB組件實現), "View" 是應用的表示面(由J 頁面產生),"Controller" 是提供應用的處理過程控制(一般是一個Servlet),通過這種設計模型把應用邏輯,處理過程和顯示邏輯分成不同的組件實現。這些組件可以進行交互和重用。
99java中有幾種方法可以實現一個線程?用什麼關鍵字修飾同步方法? stop()su end()方法爲何不推薦使用?
有兩種實現方法,分別是繼承Thread類與實現Ru able接口
synchronized關鍵字修飾同步方法
反對使用stop(),是因爲它不安全。它會解除由線程獲取的所有鎖定,而且如果對象處於一種不連貫狀態,那麼其他線程能在那種狀態下檢查和修改它們。結果很難檢查出真正的問題所在。su end()方法容易發生死鎖。調用su end()的時候,目標線程會停下來,但卻仍然持有在這之前獲得的鎖定。此時,其他任何線程都不能訪問鎖定的資源,除非被"掛起"的線程恢復運行。對任何線程來說,如果它們想恢復目標線程,同時又試圖使用任何一個鎖定的資源,就會造成死鎖。所以不應該使用su end(),而應在自己的Thread類中置入一個標誌,指出線程應該活動還是掛起。若標誌指出線程應該掛起,便用 wait()命其進入等待狀態。若標誌指出線程應當恢復,則用一個notify()重新啓動線程。

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