java面試題一

1概述struts,以及struts如何實現MVC架構的?
答:struts framework是一種基於java的技術,Web應用程序開發人員通過struts framework即可充分利用面向對象設計、代碼重用以及"編寫一次、到處運行"的優點。Struts提供一種創建Web應用程序的框架,其中對應用程序的顯示、表示和數據的後端代碼進行了抽象。Struts採用jsp作爲MVC的視圖,ActionServlet具體指定的action動作類作爲控制器即MVC中的C,負責視圖與模型之間的交互。控制器的每個入口點都由名爲struts-config.xml的配置文件設置。該文件把來自視圖的請求映射爲特定的JAVA類以進行相應的處理,控制器還指定下一個視圖的位置。Struts中的模型主要指的就是javabean,它是模型的代表,主要封裝數據和業務邏輯。
Struts的處理流程:
控制器進行初始化工作,讀取配置文件,爲不同的Struts模塊初始化相應的ModulConfig對象。
控制器接收Http請求,並從ActionConfig中找出對應於該請求的Action子類,如果沒有對應的Action,控制器直接將請求轉發給JSP或者靜態頁面,否則控制器將請求分發至具體的Action類進行處理。
在控制器調用具體的ActionExecute方法之前,ActionForm對象將利用Http請求中的參數來填充自已。還可以在ActionForm類中調用Validate方法來檢查請求參數的合法性,並且可以返回一個包含所有錯誤信息的ActionErrors對象。
執行具體的的Execute的方法,它負責執行相應的業務邏輯。執行完後,返回一個ActionForward對象,控制器通過該ActionForward對象來進行轉發工作。也可以把Action要處理的業務邏輯封裝在JavaBean中,如果系統中還有EJB,那麼通過JavaBean調用EJB以完成業務處理;如果沒有EJB,那麼就直接在JavaBean中連接數據庫,進行數據庫相關的操作。

2、概述MVC體系結構。
答:MVC包括三類對象,model是應用對象,view是視圖,controller是控制器,它定義用戶界面對用戶輸入的響應方式。
MVC體系中,模型通常被稱爲"業務邏輯",是真正完成任務的代碼,視圖就是使用界面,反映數據的變化。控制器控制着模型和視圖之間的交互過程,它決定着向用戶返回怎樣的視圖、檢查通過界面輸入的信息以及選擇處理輸入信息的模型
MVC中,表示層和邏輯層分離,各部分可相互獨立進行開發,便於開發和維護,提高了開發效率。

3、多線程的優點。
答:可分兩方面來答:
1、 相對於單線程而言 :
可以響應多任務的併發操作。
多線程取消了主循環和輪流檢測機制,一個線程可以暫停而不阻止系統其他的部分的執行,而且當程序中一個線程阻塞時,只有那個被阻塞的線程暫停,所有其他的線程繼續執行。
2、 相對於進程而言:(可以答也可以不答)
它所要求的開銷比較小,轉換成本較小。
所有線程共享同一地址空間,相互協作。
彼此之間通信很容易。

4EJB概述
答:EJB是企業級的JavaBean,它提供了構建企業級業務邏輯的一種組件模型。
EJB分爲三種:Session Bean Entity Bean Message-Driven Bean 三種,其中Session Bean分爲有狀態和無狀態Session Bean兩種,Entity Bean分爲容器管理的Entity Bean ( CMP ) 和 Bean管理的 Entity Bean ( BMP )。每一個EJB由一個遠程接口、一個本地接口和一個EJB容器實現組成,遠程接口聲明瞭提供給EJB客戶調用的各種應用方法,本地接口聲明瞭創建新的EJB實例的create方法、尋找EJB實例的查找(finder)方法以及刪除EJB實例的remove方法。EJB容器提供了EJB的運行環境和生命週期的管理。
5、 用java訪問Oracle數據庫、取得記錄並輸出到界面
答:..........................
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn=DriverManager.getConnection( url , username , password );
Statement stmt=conn.createStatement();
String str="select * from [table]";
ResultSet rs=stmt.executeQuery(str);
While(rs.next())
{
........................
}
rs.close();
stmt.close();
conn.close();

6、 概述java垃圾回收機制
答:它的工作原理如下:
當不存在對一個對象的引用時,我們就假定不再需要那個對象,那個對象所佔有的存儲單元可以被收回,可通過System.gc()方法回收,但一般要把不再引用的對象標誌爲null爲佳。


7、 java類是否可以多繼承,怎麼實現多繼承?
答:java沒有多繼承,但可以通過接口的形式來達到多繼承的目地。

8、 面向對象的特點
答:面向對象有三大特點:封裝、繼承、多態。(如果要回答四個,可加上 抽象性 這一特點)

9、接口有什麼優點
答:接口有以下優點:
A 接口只是一個框架而沒有實現,因此在接口定義時不需要考慮接口中的方法如何實現。
B 利用接口可達到實現多繼承的目地。
C 可以在不暴露對象的類的前提下,暴露對象的編程接口。
D 不用強迫類關係在無關類中截獲相似處(採用適配器就可以了)
E聲明想執行的一個或多個方法。

10、 ArrayList 與 Vector 的區別
答:主要從兩個方面來說明:
A 安全、效率方面
如果要實現同步安全,則要用Vector,否則則用ArrayList,因爲ArrayList不考慮同步安全的問題,所以效率要高些。
B 資源方面
當兩者的容量已滿時,它們都會自動增長其容量,但Vector是按其容量的一倍增長,而ArrayList則按其容量的50%增加,所以Vector更能節省資源。

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