- 相關(guān)推薦
J2EE高級(jí)工程師常見(jiàn)面試題
J2EE核心是一組技術(shù)規(guī)范與指南,其中所包含的各類組件、服務(wù)架構(gòu)及技術(shù)層次,均有共同的標(biāo)準(zhǔn)及規(guī)格。下面是小編整理的關(guān)于J2EE高級(jí)工程師常見(jiàn)面試題,歡迎大家練習(xí)!
1、 分類列舉服務(wù)器和組件技術(shù):
(1) 服務(wù)器端技術(shù):JSP、Servlet。
(2) 組件技術(shù):JavaBean、EJB。
2、 Http和Https:Https即多了安全的Http,s(Security Socket Layer)指加密套接字協(xié)議(簡(jiǎn)寫(xiě)SSL)。
3、 OSI(Open System Interconnection)網(wǎng)絡(luò)抽象模型:
(1) 由國(guó)際標(biāo)準(zhǔn)化組織(ISO)提出。
(2) 將互聯(lián)網(wǎng)分為七層,從下至上分別為:物理層(physical)、數(shù)據(jù)鏈路層(data link)、網(wǎng)絡(luò)層(network)、傳送層(transport)、會(huì)話層(session)、表示層(presentation)、應(yīng)用層(application)。底層通過(guò)提供接口支持上層功能。
(3) 各層詳解:
a) 物理層:LAN/ATM,為硬件層。
b) 數(shù)據(jù)鏈路層:LAN/ATM
c) 網(wǎng)絡(luò)層:IP協(xié)議,IOS
d) 傳輸層:TCP/UDP協(xié)議,支持Java Socket。
e) 會(huì)話層
f) 表示層:HTML、XML
g) 應(yīng)用層:HTTP協(xié)議,使用Java Servlet/JSP
<第八層(Web服務(wù)層):SOAP/UDDI>
4、 J2EE的容器與服務(wù)器:
容器負(fù)責(zé)EJB組件中聲明周期的控制;
服務(wù)器包含在容器外,提供系統(tǒng)級(jí)操作底層服務(wù),包括事務(wù)、事件、多線程。
5、 繼承限制:
父類對(duì)象不可以賦給子類對(duì)象,因?yàn)樽宇惪赡芫哂懈嗟某蓡T,反之可以。
6、 邏輯操作:
C = ( a > b ) ? a : b ;等同于
If ( a > b ) c=a; else c = b;
7、 列舉常見(jiàn)集合框架類型
(1) List、Set、Map。由這三個(gè)接口實(shí)現(xiàn)出ArrayList、LinkedList、HashSet、TreeSet、HashMap、TreeMap等常用集合框架。
(2) Vector屬于重量級(jí)組件不推薦使用。
(3) Map類型維護(hù)鍵/值對(duì),Hashtable與HashMap相近但效率略低于HashMap、高于TreeMap、TreeMap優(yōu)點(diǎn)是可以排序。
(4) Set類型可以裝入唯一值,HashSet效率高于TreeSet但TreeSet可以維護(hù)內(nèi)部元素的排序狀態(tài)。
(5) List類型可按某種特定順序維護(hù)元素。ArrayList允許快速隨機(jī)訪問(wèn),但如果添加或刪除位于中間的元素時(shí)效率很低;LinkedList提供最佳循環(huán)訪問(wèn)及快速的中間位置添加刪除元素,并有addFirst、addLast、getFirst、getLast、removeFirst、removeLast方法。
8、 面向?qū)ο蟮奶卣鳎?/strong>
(1) 繼承:通過(guò)子類可以實(shí)現(xiàn)繼承,子類繼承父類的所有狀態(tài)和行為,同時(shí)添加自身的狀態(tài)和行為。
(2) 封裝:將代碼及處理數(shù)據(jù)綁定在一起的一種編程機(jī)制,該機(jī)制保證程序和數(shù)據(jù)不受外部干擾。
(3) 多臺(tái):包括重載和重寫(xiě)。重載為編譯時(shí)多態(tài),重寫(xiě)是運(yùn)行時(shí)多態(tài)。重載必須是同類中名稱相同參數(shù)不同(包括個(gè)數(shù)不同和類型不同),但返回類型不同不構(gòu)成重載;重寫(xiě)發(fā)生于子類對(duì)父類的覆蓋,子類繼承父類方法名相同、參數(shù)列表相同、返回類型相同才構(gòu)成重寫(xiě)。
9、 Java命名規(guī)范:
(1) 必須以應(yīng)為字母、下劃線或$開(kāi)始,其余可以有數(shù)據(jù)但不允許包含空格,且組合后的名稱不能是Java關(guān)鍵字或保留字。
(2) 匈牙利命名法:以m開(kāi)始為類成員變量,以g開(kāi)始為全局變量,以v開(kāi)始為本的局部變量,常量命名一般不以下劃線、美元符開(kāi)始。
(3) 駝峰命名:一般稱由多個(gè)單詞或縮寫(xiě)組成的變量名,并且該變量名每個(gè)單詞首字母均為大寫(xiě)(一般類名全部首字母大寫(xiě),方法或?qū)傩悦谝粋(gè)字母小寫(xiě))的稱為駝峰命名。
10、 Java語(yǔ)言共包含47個(gè)關(guān)鍵字。
11、 設(shè)計(jì)模式:
一個(gè)設(shè)計(jì)模式描述了一個(gè)被證實(shí)可行的方案。這些方案非常普遍,是具有完整定義的最常用的模式。一般模式有4個(gè)基本要素:模式名稱(pattern name)、問(wèn)題(problem)、解決方案(solution)、效果(consequences)
常見(jiàn)23種模式概述:
(1) 抽象工廠模式(Abstract Factory):提供一個(gè)創(chuàng)建一系列相關(guān)或相互依賴對(duì)象的接口,而無(wú)需指定它們具體的類。
(2) 適配器模式(Adapter):將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口。適配器模式使得原本由于接口不兼容而不能一起工作的類可以一起工作。
(3) 橋梁模式(Bridge):將抽象部分與他的實(shí)現(xiàn)部分分離,使他們都可以獨(dú)立的變化。
(4) 建造模式(Builder):將一個(gè)復(fù)雜對(duì)象的構(gòu)建與他的標(biāo)表示分離,使同樣的構(gòu)建過(guò)程可以創(chuàng)建不同的表示。
(5) 責(zé)任鏈模式(Chain of Responsibility):為解除請(qǐng)求的發(fā)送者和接收者之間耦合,而使多個(gè)對(duì)象都有幾乎處理這個(gè)請(qǐng)求。將這些對(duì)象連成一條鏈,并沿著這條鏈傳遞給請(qǐng)求,知道有一個(gè)對(duì)象處理他。
(6) 命令模式(Command):將一個(gè)請(qǐng)求封裝為一個(gè)對(duì)象,從而可用不同的請(qǐng)求對(duì)客戶進(jìn)行參數(shù)化;對(duì)請(qǐng)求排列或記錄請(qǐng)求日志,以及支持可取消的操作。
(7) 合成模式(Composite):將對(duì)象組合成樹(shù)形結(jié)構(gòu)以表示“部分-整體”的層次結(jié)構(gòu)。它使得客戶對(duì)單個(gè)對(duì)象和復(fù)合對(duì)象的使用具有一致性。
(8) 裝飾模式(Decorator):動(dòng)態(tài)地給一個(gè)對(duì)象添加一些額外的職責(zé)。就擴(kuò)展功能而言,他能生成子類的方式更為靈活。
(9) 門(mén)面模式(Facade):為子系統(tǒng)中的一組接口提供一個(gè)一致的界面,門(mén)面模式定義了一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加容器使用。
(10) 工廠方法(Factory Mehtod):定義一個(gè)用于創(chuàng)建對(duì)象的接口,讓子類決定將哪一個(gè)類實(shí)例化。Factory Method使一個(gè)類的實(shí)例化延遲到其子類。
(11) 享元模式(Flyweight):運(yùn)用共享技術(shù)以有效地支持大量細(xì)粒度的對(duì)象。
(12) 解釋器模式(Interpreter):給定一個(gè)語(yǔ)言,定義他的語(yǔ)法的一種表示,并定義一個(gè)解釋器,該解釋器使用該表示解釋語(yǔ)言中的句子。
(13) 迭代子模式(Iterator):提供一種方法順序訪問(wèn)一個(gè)聚合對(duì)象中的各個(gè)元素,而又不需暴露該對(duì)象的內(nèi)部表示。
(14) 調(diào)停者模式(Mediator):用一個(gè)中介對(duì)象來(lái)封裝一系列的對(duì)象交互。中介者使各對(duì)象不需要顯式的內(nèi)部表示。
(15) 備忘錄模式(Memento):在不破壞封裝性的前提下,捕獲一個(gè)對(duì)象的內(nèi)部狀態(tài),并在該對(duì)象之外保存這個(gè)狀態(tài)。這樣以后就可將該對(duì)象恢復(fù)到保存的狀態(tài)。
(16) 觀察者模式(Observer):定義對(duì)象間的一種一對(duì)多的依賴關(guān)系,以便當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生改變時(shí),所有依賴于他的對(duì)象都得到通知并自動(dòng)刷新。
(17) 原始模型模式(Prototype):用原型實(shí)例指定創(chuàng)建對(duì)象的種類,并且通過(guò)拷貝這個(gè)原型創(chuàng)建新的對(duì)象。
(18) 代理模式(Proxy):為其他對(duì)象提供一個(gè)代理以控制對(duì)這個(gè)對(duì)象的訪問(wèn)。
(19) 單例模式(Singleton):保證一個(gè)類僅有一個(gè)實(shí)例,并提供一個(gè)訪問(wèn)他的全局訪問(wèn)點(diǎn)。
(20) 狀態(tài)模式(State):允許一個(gè)對(duì)象在其內(nèi)部狀態(tài)改變時(shí)改變他的行為。對(duì)象看起來(lái)似乎修改了他所屬的類。
(21) 策略模式(Strategy):定義一系列的算法,把他們一個(gè)個(gè)封裝起來(lái),并且使他們可相互替換。本模式使得算法的變化可獨(dú)立使用他的客戶。
(22) 模板模式(Template Mehtod):定義一個(gè)操作中的算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變一個(gè)算法的結(jié)構(gòu)即可重定義該算法的某些特定步驟。
(23) 訪問(wèn)者模式(Visitor):表示一個(gè)作用于某對(duì)象結(jié)構(gòu)中的各元素的做。該模式可以實(shí)現(xiàn)在不改變各元素的類的前提下定義作用于這些元素的新操作。
12、 簡(jiǎn)述常用的軟件開(kāi)發(fā)文檔
(1) 可行性研究報(bào)告
(2) 項(xiàng)目開(kāi)發(fā)計(jì)劃
(3) 軟件需求說(shuō)明書(shū)(必有)
(4) 數(shù)據(jù)要求說(shuō)明書(shū)
(5) 概要設(shè)計(jì)說(shuō)明書(shū)(必有)
(6) 詳細(xì)設(shè)計(jì)說(shuō)明書(shū)(必有)
(7) 數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書(shū)(必有)
(8) 用戶手冊(cè)(一般會(huì)有)
(9) 操作手冊(cè)(必有)
(10) 模塊開(kāi)發(fā)卷宗
(11) 測(cè)試計(jì)劃(必有)
(12) 測(cè)試分析報(bào)告
(13) 開(kāi)發(fā)進(jìn)度月報(bào)
(14) 項(xiàng)目開(kāi)發(fā)總結(jié)報(bào)告
13、 簡(jiǎn)述類的關(guān)系
(1) 當(dāng)一個(gè)類是“一種”另一個(gè)類時(shí):is-a關(guān)系
(2) 當(dāng)兩個(gè)類之間有關(guān)聯(lián)時(shí):
一個(gè)類“包含”另一個(gè)類:has-a關(guān)系
一個(gè)類“使用”另一個(gè)類
【J2EE高級(jí)工程師常見(jiàn)面試題】相關(guān)文章:
J2EE高級(jí)工程師面試題06-20
J2EE經(jīng)典面試題及答案08-08
J2EE面試題及答案「精選」09-20
2016年J2EE面試題及答案「精選」06-04
J2EE框架面試題庫(kù)11-03
關(guān)于J2EE MVC方面的面試題及答案07-08
Java高級(jí)工程師面試題及答案09-20
2017年Sql常見(jiàn)面試題10-24