J2EE高級工程師常見面試題

學識都 人氣:1.32W

J2EE核心是一組技術規範與指南,其中所包含的各類組件、服務架構及技術層次,均有共同的標準及規格。下面是小編整理的關於J2EE高級工程師常見面試題,歡迎大家練習!

J2EE高級工程師常見面試題

1、 分類列舉服務器和組件技術:

(1) 服務器端技術:JSP、Servlet。

(2) 組件技術:JavaBean、EJB。

2、 Http和Https:Https即多了安全的Http,s(Security Socket Layer)指加密套接字協議(簡寫SSL)。

3、 OSI(Open System Interconnection)網絡抽象模型:

(1) 由國際標準化組織(ISO)提出。

(2) 將互聯網分爲七層,從下至上分別爲:物理層(physical)、數據鏈路層(data link)、網絡層(network)、傳送層(transport)、會話層(session)、表示層(presentation)、應用層(application)。底層通過提供接口支持上層功能。

(3) 各層詳解:

a) 物理層:LAN/ATM,爲硬件層。

b) 數據鏈路層:LAN/ATM

c) 網絡層:IP協議,IOS

d) 傳輸層:TCP/UDP協議,支持Java Socket。

e) 會話層

f) 表示層:HTML、XML

g) 應用層:HTTP協議,使用Java Servlet/JSP

<第八層(Web服務層):SOAP/UDDI>

4、 J2EE的容器與服務器:

容器負責EJB組件中聲明週期的控制;

服務器包含在容器外,提供系統級操作底層服務,包括事務、事件、多線程。

5、 繼承限制:

父類對象不可以賦給子類對象,因爲子類可能具有更多的成員,反之可以。

6、 邏輯操作:

C = ( a > b ) ? a : b ;等同於

If ( a > b ) c=a; else c = b;

7、 列舉常見集合框架類型

(1) List、Set、Map。由這三個接口實現出ArrayList、LinkedList、HashSet、TreeSet、HashMap、TreeMap等常用集合框架。

(2) Vector屬於重量級組件不推薦使用。

(3) Map類型維護鍵/值對,Hashtable與HashMap相近但效率略低於HashMap、高於TreeMap、TreeMap優點是可以排序。

(4) Set類型可以裝入唯一值,HashSet效率高於TreeSet但TreeSet可以維護內部元素的排序狀態。

(5) List類型可按某種特定順序維護元素。ArrayList允許快速隨機訪問,但如果添加或刪除位於中間的元素時效率很低;LinkedList提供最佳循環訪問及快速的中間位置添加刪除元素,並有addFirst、addLast、getFirst、getLast、removeFirst、removeLast方法。

8、 面向對象的特徵:

(1) 繼承:通過子類可以實現繼承,子類繼承父類的所有狀態和行爲,同時添加自身的狀態和行爲。

(2) 封裝:將代碼及處理數據綁定在一起的一種編程機制,該機制保證程序和數據不受外部干擾。

(3) 多臺:包括重載和重寫。重載爲編譯時多態,重寫是運行時多態。重載必須是同類中名稱相同參數不同(包括個數不同和類型不同),但返回類型不同不構成重載;重寫發生於子類對父類的覆蓋,子類繼承父類方法名相同、參數列表相同、返回類型相同才構成重寫。

9、 Java命名規範:

(1) 必須以應爲字母、下劃線或$開始,其餘可以有數據但不允許包含空格,且組合後的名稱不能是Java關鍵字或保留字。

(2) 匈牙利命名法:以m開始爲類成員變量,以g開始爲全局變量,以v開始爲本的局部變量,常量命名一般不以下劃線、美元符開始。

(3) 駝峯命名:一般稱由多個單詞或縮寫組成的變量名,並且該變量名每個單詞首字母均爲大寫(一般類名全部首字母大寫,方法或屬性名第一個字母小寫)的稱爲駝峯命名。

10、 Java語言共包含47個關鍵字。

11、 設計模式:

一個設計模式描述了一個被證實可行的方案。這些方案非常普遍,是具有完整定義的最常用的模式。一般模式有4個基本要素:模式名稱(pattern name)、問題(problem)、解決方案(solution)、效果(consequences)

常見23種模式概述:

(1) 抽象工廠模式(Abstract Factory):提供一個創建一系列相關或相互依賴對象的'接口,而無需指定它們具體的類。

(2) 適配器模式(Adapter):將一個類的接口轉換成客戶希望的另外一個接口。適配器模式使得原本由於接口不兼容而不能一起工作的類可以一起工作。

(3) 橋樑模式(Bridge):將抽象部分與他的實現部分分離,使他們都可以獨立的變化。

(4) 建造模式(Builder):將一個複雜對象的構建與他的標表示分離,使同樣的構建過程可以創建不同的表示。

(5) 責任鏈模式(Chain of Responsibility):爲解除請求的發送者和接收者之間耦合,而使多個對象都有幾乎處理這個請求。將這些對象連成一條鏈,並沿着這條鏈傳遞給請求,知道有一個對象處理他。

(6) 命令模式(Command):將一個請求封裝爲一個對象,從而可用不同的請求對客戶進行參數化;對請求排列或記錄請求日誌,以及支持可取消的操作。

(7) 合成模式(Composite):將對象組合成樹形結構以表示“部分-整體”的層次結構。它使得客戶對單個對象和複合對象的使用具有一致性。

(8) 裝飾模式(Decorator):動態地給一個對象添加一些額外的職責。就擴展功能而言,他能生成子類的方式更爲靈活。

(9) 門面模式(Facade):爲子系統中的一組接口提供一個一致的界面,門面模式定義了一個高層接口,這個接口使得這一子系統更加容器使用。

(10) 工廠方法(Factory Mehtod):定義一個用於創建對象的接口,讓子類決定將哪一個類實例化。Factory Method使一個類的實例化延遲到其子類。

(11) 享元模式(Flyweight):運用共享技術以有效地支持大量細粒度的對象。

(12) 解釋器模式(Interpreter):給定一個語言,定義他的語法的一種表示,並定義一個解釋器,該解釋器使用該表示解釋語言中的句子。

(13) 迭代子模式(Iterator):提供一種方法順序訪問一個聚合對象中的各個元素,而又不需暴露該對象的內部表示。

(14) 調停者模式(Mediator):用一箇中介對象來封裝一系列的對象交互。中介者使各對象不需要顯式的內部表示。

(15) 備忘錄模式(Memento):在不破壞封裝性的前提下,捕獲一個對象的內部狀態,並在該對象之外保存這個狀態。這樣以後就可將該對象恢復到保存的狀態。

(16) 觀察者模式(Observer):定義對象間的一種一對多的依賴關係,以便當一個對象的狀態發生改變時,所有依賴於他的對象都得到通知並自動刷新。

(17) 原始模型模式(Prototype):用原型實例指定創建對象的種類,並且通過拷貝這個原型創建新的對象。

(18) 代理模式(Proxy):爲其他對象提供一個代理以控制對這個對象的訪問。

(19) 單例模式(Singleton):保證一個類僅有一個實例,並提供一個訪問他的全局訪問點。

(20) 狀態模式(State):允許一個對象在其內部狀態改變時改變他的行爲。對象看起來似乎修改了他所屬的類。

(21) 策略模式(Strategy):定義一系列的算法,把他們一個個封裝起來,並且使他們可相互替換。本模式使得算法的變化可獨立使用他的客戶。

(22) 模板模式(Template Mehtod):定義一個操作中的算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變一個算法的結構即可重定義該算法的某些特定步驟。

(23) 訪問者模式(Visitor):表示一個作用於某對象結構中的各元素的做。該模式可以實現在不改變各元素的類的前提下定義作用於這些元素的新操作。

12、 簡述常用的軟件開發文檔

(1) 可行性研究報告

(2) 項目開發計劃

(3) 軟件需求說明書(必有)

(4) 數據要求說明書

(5) 概要設計說明書(必有)

(6) 詳細設計說明書(必有)

(7) 數據庫設計說明書(必有)

(8) 用戶手冊(一般會有)

(9) 操作手冊(必有)

(10) 模塊開發卷宗

(11) 測試計劃(必有)

(12) 測試分析報告

(13) 開發進度月報

(14) 項目開發總結報告

13、 簡述類的關係

(1) 當一個類是“一種”另一個類時:is-a關係

(2) 當兩個類之間有關聯時:

一個類“包含”另一個類:has-a關係

一個類“使用”另一個類