Java程序員筆試寶典--J2EE與EJB

電子書下載地址: http://wiki.jikexueyuan.com/project/java-interview-bible/

1. J2EE 是什么?它包括哪些技術(shù)?

答:從整體上講,J2EE 是使用 Java 技術(shù)開發(fā)企業(yè)級應(yīng)用的工業(yè)標(biāo)準(zhǔn),它是 Java 技術(shù)不斷適應(yīng)和促進(jìn)企業(yè)級應(yīng)用過程中的產(chǎn)物。適用于企業(yè)級應(yīng)用的 J2EE,提供一個平臺獨立的、可移植的、多用戶的、安全的和基于標(biāo)準(zhǔn)的企業(yè)級平臺,從而簡化企業(yè)應(yīng)用的開發(fā)、管理和部署。J2EE 是一個標(biāo)準(zhǔn),而不是一個現(xiàn)成的產(chǎn)品。

主要包括以下這些技術(shù):

  1. Servlet

Servlet是Java平臺上的CGI技術(shù)。Servlet在服務(wù)器端運(yùn)行,動態(tài)地生成Web頁面。與傳統(tǒng)的CGI和許多其它類似CGI的技術(shù)相比,Java Servlet具有更高的效率并更容易使用。對于Servlet,重復(fù)的請求不會導(dǎo)致同一程序的多次轉(zhuǎn)載,它是依靠線程的方式來支持并發(fā)訪問的。

  1. JSP

JSP(Java Server Page)是一種實現(xiàn)普通靜態(tài) HTML 和動態(tài)頁面輸出混合編碼的技術(shù)。從這一點來看,非常類似 Microsoft ASP、PHP等技術(shù)。借助形式上的內(nèi)容和外觀表現(xiàn)的分離,Web 頁面制作的任務(wù)可以比較方便地劃分給頁面設(shè)計人員和程序員,并方便地通過 JSP 來合成。在運(yùn)行時態(tài),JSP 將會被首先轉(zhuǎn)換成 Servlet,并以 Servlet 的形態(tài)編譯運(yùn)行,因此它的效率和功能與 Servlet 相比沒有差別,一樣具有很高的效率。

  1. EJB

EJB 定義了一組可重用的組件:Enterprise Beans。開發(fā)人員可以利用這些組件,像搭積木一樣建立分布式應(yīng)用。

  1. JDBC

JDBC(Java Database Connectivity,Java 數(shù)據(jù)庫連接) API 是一個標(biāo)準(zhǔn) SQL(Structured Query Language,結(jié)構(gòu)化查詢語言)數(shù)據(jù)庫訪問接口,它使數(shù)據(jù)庫開發(fā)人員能夠用標(biāo)準(zhǔn) Java API 編寫數(shù)據(jù)庫應(yīng)用程序。JDBC API 主要用來連接數(shù)據(jù)庫和直接調(diào)用 SQL 命令執(zhí)行各種 SQL 語句。利用 JDBC API 可以執(zhí)行一般的 SQL 語句、動態(tài) SQL 語句及帶 IN 和 OUT 參數(shù)的存儲過程。Java 中的 JDBC 相當(dāng)于 Microsoft 平臺中的 ODBC (Open Database Connectivity)。

2. 描述 J2EE 框架的多層結(jié)構(gòu),并簡要說明各層的作用。

答:

  1. Presentation layer(表示層)

a. 表示邏輯(生成界面代碼)

b. 接收請求

c. 處理業(yè)務(wù)層拋出的異常

d. 負(fù)責(zé)規(guī)則驗證(數(shù)據(jù)格式,數(shù)據(jù)非空等)

e. 流程控制

  1. Service layer(服務(wù)層/業(yè)務(wù)層)

a.封裝業(yè)務(wù)邏輯處理,并且對外暴露接口

b.負(fù)責(zé)事務(wù),安全等服務(wù)

  1. Persistence layer(持久層)

a 封裝數(shù)據(jù)訪問的邏輯,暴露接口

b.提供方便的數(shù)據(jù)訪問的方案(查詢語言,API,映射機(jī)制等)

4)Domain layer(域?qū)樱?/p>

a. 業(yè)務(wù)對象以及業(yè)務(wù)關(guān)系的表示

b. 處理簡單的業(yè)務(wù)邏輯

c. 域?qū)拥膶ο罂梢源┰奖硎緦樱瑯I(yè)務(wù)層,持久層

軟件分層結(jié)構(gòu)使得代碼維護(hù)非常方便,設(shè)計明確,各層獨立,專注自己擅長的領(lǐng)域。

3. EJB 包含哪 3 種 bean

答:session bean(會話 bean), entity bean(實體 bean), message bean(消息 bean)

4. Tomcat 服務(wù)器的默認(rèn)端口是多少?怎樣修改 tomcat 的端口?

答:默認(rèn)端口為 8080,可以通過 service.xml 的 Connector 元素的 port 屬性來修改端口

5. EJB的優(yōu)點有哪些?(選擇 2 項)

A、技術(shù)領(lǐng)先 B、價格低廉 C、性能優(yōu)越 D、強(qiáng)大的容器支持

解答:CD

6. 無狀態(tài)會話 Bean、有狀態(tài)會話 Bean、CMP 與 BMP 中,哪一種 Bean 不需要自己書寫連接數(shù)據(jù)庫的代碼?

A、無狀態(tài)會話Bean
B、有狀態(tài)會話Bean
C、CMP
D、BMP

答:C

BMP 是在 Bean 中完成對數(shù)據(jù)庫 JDBC 的各種調(diào)用

CMP 是由 EJB 容器自動完成對數(shù)據(jù)庫的操作

會話 Bean 主要處理業(yè)務(wù)邏輯

7. 假設(shè) web 應(yīng)用的文檔根目錄為 MyApp,那么可以從哪里找到 database.jar 文件。

A. MyApp目錄下
B. MyApp\images目錄下
C. MyApp\WEB-INF目錄下
D. MyApp\WEB-INF\lib目錄下

答:D

Web 工程的 lib 是放置 .jar 文件的地方。

8.要創(chuàng)建一個 EJB,必須要至少編寫哪些 Java 類和接口?

A. 定義遠(yuǎn)程(或業(yè)務(wù))接口

B. 定義本地接口

C. 定義Bean接口

D. 編寫B(tài)ean的實現(xiàn)

解答:ABC

9. EJB 類庫存在于 Java 的哪個版本中?(選擇1項)。

A. J2SE

B. J2EE

C. J2ME

D. J2NE

解答:B

Java 分為三個體系

JavaSE(Java2 Platform Standard Edition,java平臺標(biāo)準(zhǔn)版),

JavaEE(Java 2 Platform,Enterprise Edition,java平臺企業(yè)版),

JavaME(Java 2 Platform Micro Edition,java平臺微型版)。

EJB 屬于 JavaEE 版本

10. 在 J2EE 中屬于 Web 層的組件有(選擇1項)

A. HTML

B. EJB

C. Applet

D. JSP

解答:D

11. EJB 的角色和三個對象

一個完整的基于 EJB 的分布式計算結(jié)構(gòu)由六個角色組成,這六個角色可以由不同的開發(fā)商提供,每個角色所作的工作必須遵循 Sun 公司提供的 EJB 規(guī)范,以保證彼此之間的兼容性。這六個角色分別是 EJB 組件開發(fā)者(Enterprise Bean Provider) 、應(yīng)用組合者(Application Assembler)、部署者(Deployer)、EJB 服務(wù)器提供者(EJB Server Provider)、EJB 容器提供者(EJB Container Provider)、系統(tǒng)管理員(System Administrator)

三個對象是Remote(Local)接口、Home(LocalHome)接口,Bean 類

12. EJB 的激活機(jī)制

以 Stateful Session Bean 為例:其 Cache 大小決定了內(nèi)存中可以同時存在的Bean實例的數(shù)量,根據(jù)MRU或NRU算法,實例在激活和去激活狀態(tài)之間遷移,激活機(jī)制是當(dāng)客戶端調(diào)用某個 EJB 實例業(yè)務(wù)方法時,如果對應(yīng) EJB Object 發(fā)現(xiàn)自己沒有綁定對應(yīng)的 Bean 實例則從其去激活 Bean 存儲中(通過序列化機(jī)制存儲實例)回復(fù)(激活)此實例。狀態(tài)變遷前會調(diào)用對應(yīng)的 ejbActive 和 ejbPassivate 方法。

13. EJB 的幾種類型

會話(Session)Bean ,實體(Entity)Bean 消息驅(qū)動的(Message Driven)Bean
會話 Bean 又可分為有狀態(tài)(Stateful)和無狀態(tài)(Stateless)兩種
實體 Bean 可分為 Bean 管理的持續(xù)性(BMP)和容器管理的持續(xù)性(CMP)兩種

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,625評論 18 399
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 3,995評論 0 11
  • 1、面向?qū)ο蟮奶卣饔心男┓矫?1.抽象:抽象就是忽略一個主題中與當(dāng)前目標(biāo)無關(guān)的那些方面,以便更充分地注意與當(dāng)前目標(biāo)...
    michaelgong閱讀 914評論 0 1
  • 小編費力收集:給你想要的面試集合 1.C++或Java中的異常處理機(jī)制的簡單原理和應(yīng)用。 當(dāng)JAVA程序違反了JA...
    八爺君閱讀 5,172評論 1 114
  • 今日影志:《步履不停》 導(dǎo)演: 是枝裕和主演: 阿部寬 / 夏川結(jié)衣 / 江原由希子 /高橋和也 / 田中祥平類型...
    罐子與蹦迪甜閱讀 514評論 2 2

友情鏈接更多精彩內(nèi)容