介紹JAVA編程語言的基礎知識(四)
下面介紹的是java編程相關的基礎知識:
1、如何設定的weblogic的熱啟動模式(開發(fā)模式)與產品發(fā)布模式?
可以在管理控制臺中修改對應服務器的啟動模式為開發(fā)或產品模式之一。或者修改服務的啟動文件或者commenv文件,增加set PRODUCTION_MODE=true。
2、如何啟動時不需輸入用戶名與密碼?
修改服務啟動文件,增加 WLS_USER和WLS_PW項。也可以在boot.properties文件中增加加密過的用戶名和密碼.
3、在weblogic管理制臺中對一個應用域(或者說是一個網(wǎng)站,Domain)進行jms及ejb或連接池等相關信息進行配置后,實際保存在什么文件中?
保存在此Domain的config.xml文件中,它是服務器的核心配置文件。
4、說說weblogic中一個Domain的缺省目錄結構?比如要將一個簡單的helloWorld.jsp放入何目錄下,然的在瀏覽器上就可打入http://主機:端口號//helloword.jsp就可以看到運行結果了? 又比如這其中用到了一個自己寫的javaBean該如何辦?
Domain目錄\服務器目錄\applications,將應用目錄放在此目錄下將可以作為應用訪問,如果是Web應用,應用目錄需要滿足Web應用目錄要求,jsp文件可以直接放在應用目錄中,Javabean需要放在應用目錄的WEB-INF目錄的classes目錄中,設置服務器的缺省應用將可以實現(xiàn)在瀏覽器上無需輸入應用名。
5、在weblogic中發(fā)布ejb需涉及到哪些配置文件
不同類型的EJB涉及的配置文件不同,都涉及到的配置文件包括ejb-jar.xml,weblogic-ejb-jar.xmlCMP實體Bean一般還需要weblogic-cmp-rdbms-jar.xml
6、如何在weblogic中進行ssl配置與客戶端的認證配置或說說j2ee(標準)進行ssl的配置
缺省安裝中使用DemoIdentity.jks和DemoTrust.jks KeyStore實現(xiàn)SSL,需要配置服務器使用Enable SSL,配置其端口,在產品模式下需要從CA獲取私有密鑰和數(shù)字證書,創(chuàng)建identity和trust keystore,裝載獲得的密鑰和數(shù)字證書。可以配置此SSL連接是單向還是雙向的。
7、如何查看在weblogic中已經(jīng)發(fā)布的EJB?
可以使用管理控制臺,在它的Deployment中可以查看所有已發(fā)布的EJB
8、CORBA是什么?用途是什么?
CORBA 標準是公共對象請求代理結構(Common Object Request Broker Architecture),由對象管理組織 (Object Management Group,縮寫為 OMG)標準化。它的組成是接口定義語言(IDL), 語言綁定(binding:也譯為聯(lián)編)和允許應用程序間互操作的協(xié)議。 其目的為:用不同的程序設計語言書寫在不同的進程中運行,為不同的操作系統(tǒng)開發(fā)。
9、說說你所熟悉或聽說過的j2ee中的幾種常用模式?及對設計模式的一些看法
- Session Facade Pattern:使用SessionBean訪問EntityBean
- Message Facade Pattern:實現(xiàn)異步調用
- EJB Command Pattern:使用Command JavaBeans取代SessionBean,實現(xiàn)輕量級訪問
- Data Transfer Object Factory:通過DTO Factory簡化EntityBean數(shù)據(jù)提供特性
- Generic Attribute Access:通過AttibuteAccess接口簡化EntityBean數(shù)據(jù)提供特性
- Business Interface:通過遠程(本地)接口和Bean類實現(xiàn)相同接口規(guī)范業(yè)務邏輯一致性
EJB架構的設計好壞將直接影響系統(tǒng)的性能、可擴展性、可維護性、組件可重用性及開發(fā)效率。項目越復雜,項目隊伍越龐大則越能體現(xiàn)良好設計的重要性。
10、說說在weblogic中開發(fā)消息Bean時的persistent與non-persisten的差別
persistent方式的MDB可以保證消息傳遞的可靠性,也就是如果EJB容器出現(xiàn)問題而JMS服務器依然會將消息在此MDB可用的時候發(fā)送過來,而non-persistent方式的消息將被丟棄。
11、Servlet執(zhí)行時一般實現(xiàn)哪幾個方法?
- public void init(ServletConfig config)
- public ServletConfig getServletConfig()
- public String getServletInfo()
- public void service(ServletRequest request,ServletResponse response)
- public void destroy()
12、j2ee常用的設計模式?說明工廠模式。
Java中的23種設計模式:
Factory(工廠模式), Builder(建造模式), Factory Method(工廠方法模式),Prototype(原始模型模式),Singleton(單例模式), Facade(門面模式), Adapter(適配器模式), Bridge(橋梁模式), Composite(合成模式), Decorator(裝飾模式), Flyweight(享元模式), Proxy(代理模式), Command(命令模式), Interpreter(解釋器模式), Visitor(訪問者模式), Iterator(迭代子模式), Mediator(調停者模式), Memento(備忘錄模式), Observer(觀察者模式), State(狀態(tài)模式), Strategy(策略模式), Template Method(模板方法模式), Chain Of Responsibleity(責任鏈模式)
工廠模式:工廠模式是一種經(jīng)常被使用到的模式,根據(jù)工廠模式實現(xiàn)的類可以根據(jù)提供的數(shù)據(jù)生成一組類中某一個類的實例,通常這一組類有一個公共的抽象父類并且實現(xiàn)了相同的方法,但是這些方法針對不同的數(shù)據(jù)進行了不同的操作。首先需要定義一個基類,該類的子類通過不同的方法實現(xiàn)了基類中的方法。然后需要定義一個工廠類,工廠類可以根據(jù)條件生成不同的子類實例。當?shù)玫阶宇惖膶嵗螅_發(fā)人員可以調用基類中的方法而不必考慮到底返回的是哪一個子類的實例。
13、EJB需直接實現(xiàn)它的業(yè)務接口或Home接口嗎,請簡述理由。
遠程接口和Home接口不需要直接實現(xiàn),他們的實現(xiàn)代碼是由服務器產生的,程序運行中對應實現(xiàn)類會作為對應接口類型的實例被使用。
14、排序都有哪幾種方法?請列舉。用JAVA實現(xiàn)一個快速排序。
排序的方法有:插入排序(直接插入排序、希爾排序),交換排序(冒泡排序、快速排序),選擇排序(直接選擇排序、堆排序),歸并排序,分配排序(箱排序、基數(shù)排序)
快速排序的偽代碼。
- / /使用快速排序方法對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 t
15、請對以下在J2EE中常用的名詞進行解釋(或簡單描述)
web容器:給處于其中的應用程序組件(JSP,SERVLET)提供一個環(huán)境,使JSP,SERVLET直接更容器中的環(huán)境變量接口*交互,不必關注其它系統(tǒng)問題。主要有WEB服務器來實現(xiàn)。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。該容器提供的接口嚴格遵守J2EE規(guī)范中的WEB APPLICATION 標準。我們把遵守以上標準的WEB服務器就叫做J2EE中的WEB容器。
EJB容器:Enterprise java bean 容器。更具有行業(yè)領域特色。他提供給運行在其中的組件EJB各種管理功能。只要滿足J2EE規(guī)范的EJB放入該容器,馬上就會被容器進行高效率的管理。并且可以通過現(xiàn)成的接口來獲得系統(tǒng)級別的服務。例如郵件服務、事務管理。
JNDI:(Java Naming & Directory Interface)JAVA命名目錄服務。主要提供的功能是:提供一個目錄系統(tǒng),讓其它各地的應用程序在其上面留下自己的索引,從而滿足快速查找和定位分布式應用程序的功能。
JMS:(Java Message Service)JAVA消息服務。主要實現(xiàn)各個應用程序之間的通訊。包括點對點和廣播。
JTA:(Java Transaction API)JAVA事務服務。提供各種分布式事務服務。應用程序只需調用其提供的接口即可。
JAF:(Java Action FrameWork)JAVA安全認證框架。提供一些安全控制方面的框架。讓開發(fā)者通過各種部署和自定義實現(xiàn)自己的個性安全控制策略。
RMI/IIOP:(Remote Method Invocation /internet對象請求中介協(xié)議)他們主要用于通過遠程調用服務。例如,遠程有一臺計算機上運行一個程序,它提供股票分析服務,我們可以在本地計算機上實現(xiàn)對其直接調用。當然這是要通過一定的規(guī)范才能在異構的系統(tǒng)之間進行通信。RMI是JAVA特有的。
16、JAVA語言如何進行異常處理,關鍵字:throws,throw,try,catch,finally分別代表什么意義?在try塊中可以拋出異常嗎?
Java通過面向對象的方法進行異常處理,把各種不同的異常進行分類,并提供了良好的接口。在Java中,每個異常都是一個對象,它是Throwable類或其它子類的實例。當一個方法出現(xiàn)異常后便拋出一個異常對象,該對象中包含有異常信息,調用這個對象的方法可以捕獲到這個異常并進行處理。Java的異常處理是通過5個關鍵詞來實現(xiàn)的:try、catch、throw、throws和finally。
一般情況下是用try來執(zhí)行一段程序,如果出現(xiàn)異常,系統(tǒng)會拋出(throws)一個異常,這時候你可以通過它的類型來捕捉(catch)它,或最后(finally)由缺省處理器來處理。
用try來指定一塊預防所有"異常"的程序。緊跟在try程序后面,應包含一個catch子句來指定你想要捕捉的"異常"的類型。
- throw語句用來明確地拋出一個"異常"。
- throws用來標明一個成員函數(shù)可能拋出的各種"異常"。
- Finally為確保一段代碼不管發(fā)生什么"異常"都被執(zhí)行一段代碼。
可以在一個成員函數(shù)調用的外面寫一個try語句,在這個成員函數(shù)內部寫另一個try語句保護其他代碼。每當遇到一個try語句,"異常"的框架就放到堆棧上面,直到所有的try語句都完成。如果下一級的try語句沒有對某種"異常"進行處理,堆棧就會展開,直到遇到有處理這種"異常"的try語句。
17、一個".java"源文件中是否可以包括多個類(不是內部類)?有什么限制?
可以。必須只有一個類名與文件名相同。
18、MVC的各個部分都有那些技術來實現(xiàn)?如何實現(xiàn)?
MVC是Model-View-Controller的簡寫。"Model" 代表的是應用的業(yè)務邏輯(通過JavaBean,EJB組件實現(xiàn)), "View" 是應用的表示面(由JSP頁面產生),"Controller" 是提供應用的處理過程控制(一般是一個Servlet),通過這種設計模型把應用邏輯,處理過程和顯示邏輯分成不同的組件實現(xiàn)。這些組件可以進行交互和重用。
19、java中有幾種方法可以實現(xiàn)一個線程?用什么關鍵字修飾同步方法? stop()和suspend()方法為何不推薦使用?
有兩種實現(xiàn)方法,分別是繼承Thread類與實現(xiàn)Runnable接口
用synchronized關鍵字修飾同步方法
反對使用stop(),是因為它不安全。它會解除由線程獲取的所有鎖定,而且如果對象處于一種不連貫狀態(tài),那么其他線程能在那種狀態(tài)下檢查和修改它們。結果很難檢查出真正的問題所在。suspend()方法容易發(fā)生死鎖。調用suspend()的時候,目標線程會停下來,但卻仍然持有在這之前獲得的鎖定。此時,其他任何線程都不能訪問鎖定的資源,除非被"掛起"的線程恢復運行。對任何線程來說,如果它們想恢復目標線程,同時又試圖使用任何一個鎖定的資源,就會造成死鎖。所以不應該使用suspend(),而應在自己的Thread類中置入一個標志,指出線程應該活動還是掛起。若標志指出線程應該掛起,便用wait()命其進入等待狀態(tài)。若標志指出線程應當恢復,則用一個notify()重新啟動線程。
100、java中有幾種類型的流?JDK為每種類型的流提供了一些抽象類以供繼承,請說出他們分別是哪些類?
字節(jié)流,字符流。字節(jié)流繼承于InputStream \ OutputStream,字符流繼承于InputStreamReader \ OutputStreamWriter。在java.io包中還有許多其他的流,主要是為了提高性能和使用方便。
希望通過以上內容的介紹,能夠給你帶來幫助。