轉自:http://blog.sina.com.cn/s/blog_4e8be0590100fbb8.htmlhtml
J2EE面試題集錦(附答案)
1、基礎問答
1.下面哪些類能夠被繼承?
java.lang.Thread (T)
java.lang.Number (T)
java.lang.Double (F)
java.lang.Math (F)
java.lang.Void (F)
java.lang.Class (F)
java.lang.ClassLoader (T)
2.抽象類和接口的區別
(1)接口能夠被多重implements,抽象類只能被單一extends
(2)接口只有定義,抽象類能夠有定義和實現
(3)接口的字段定義默認爲:public static final, 抽象類字段默認是"friendly"(本包可見)
3.Hashtable的原理,並說出HashMap與Hashtable的區別
HashTable的原理:經過節點的關鍵碼肯定節點的存儲位置,即給定節點的關鍵碼k,經過必定的函數關係H(散列函數),獲得函數值H(k),將此值解釋爲該節點的存儲地址.
HashMap 與Hashtable很類似,但HashMap 是非同步(unsynchronizded)和能夠以null爲關鍵碼的.
4.forward和redirect的區別
forward: an internal transfer in servlet
redirect: 重定向,有2次request,第2次request將丟失第一次的attributs/parameters等
5.什麼是Web容器?
實現J2EE規範中web協議的應用.該協議定義了web程序的運行時環境,包括:併發性,安全性,生命週期管理等等.
6.解釋下面關於J2EE的名詞
(1)JNDI:Java Naming & Directory Interface,JAVA命名目錄服務.主要提供的功能是:提供一個目錄系統,讓其它各地的應用程序在其上面留下本身的索引,從而知足快速查找和定位分佈式應用程序的功能.
(2)JMS:Java Message Service,JAVA消息服務.主要實現各個應用程序之間的通信.包括點對點和廣播.
(3)JTA:Java Transaction API,JAVA事務服務.提供各類分佈式事務服務.應用程序只需調用其提供的接口便可.
(4)JAF: Java Action FrameWork,JAVA安全認證框架.提供一些安全控制方面的框架.讓開發者經過各類部署和自定義實現本身的個性安全控制策略.
(5)RMI:Remote Method Interface,遠程方法調用
7.EJB是基於哪些技術實現的?並說 出SessionBean和EntityBean的區別,StatefulBean和StatelessBean的區別.
EJB包括Session Bean、Entity Bean、Message Driven Bean,基於JNDI、RMI、JAT等技術實現.
SessionBean在J2EE應用程序中被用來完成一些服務器端的業務操做,例如訪問數據庫、調用其餘EJB組件.EntityBean被用來表明應用系統中用到的數據.對於客戶機,SessionBean是一種非持久性對象,它實現某些在服務器上運行的業務邏輯;EntityBean是一種持久性對象,它表明一個存儲在持久性存儲器中的實體的對象視圖,或是一個由現有企業應用程序實現的實體.
Session Bean 還能夠再細分爲 Stateful Session Bean 與 Stateless Session Bean .這兩種的 Session Bean均可以將系統邏輯放在 method之中執行,不一樣的是 Stateful Session Bean 能夠記錄呼叫者的狀態,所以一般來講,一個使用者會有一個相對應的 Stateful Session Bean 的實體.Stateless Session Bean 雖然也是邏輯組件,可是他卻不負責記錄使用者狀態,也就是說當使用者呼叫 Stateless Session Bean 的時候,EJB Container 並不會找尋特定的 Stateless Session Bean 的實體來執行這個 method.換言之,極可能數個使用者在執行某個 Stateless Session Bean 的 methods 時,會是同一個 Bean 的 Instance 在執行.從內存方面來看, Stateful Session Bean 與 Stateless Session Bean 比較, Stateful Session Bean 會消耗 J2EE Server 較多的內存,然而 Stateful Session Bean 的優點卻在於他能夠維持使用者的狀態.
8.XML的解析方法
Sax,DOM,JDOM
9.什麼是Web Service?
Web Service就是爲了使原來各孤立的站點之間的信息可以相互通訊、共享而提出的一種接口。
Web Service所使用的是Internet上統1、開放的標準,如HTTP、XML、SOAP(簡單對象訪問協議)、WSDL等,因此Web Service能夠在任何支持這些標準的環境(Windows,Linux)中使用。
注:SOAP協議(Simple Object Access Protocal,簡單對象訪問協議),它是一個用於分散和分佈式環境下網絡信息交換的基於XML的通信協議。在此協議下,軟件組件或應用程序可以經過標準的HTTP協議進行通信。它的設計目標就是簡單性和擴展性,這有助於大量異構程序和平臺之間的互操做性,從而使存在的應用程序可以被普遍的用戶訪問。
優點:
(1).跨平臺。
(2).SOAP協議是基於XML和HTTP這些業界的標準的,獲得了全部的重要公司的支持。
(3).因爲使用了SOAP,數據是以ASCII文本的方式而非二進制傳輸,調試很方便;而且因爲這樣,它的數據容易經過防火牆,不須要防火牆爲了程序而單獨開一個「漏洞」。
(4).此外,WebService實現的技術難度要比CORBA和DCOM小得多。
(5).要實現B2B集成,EDI比較完善與比較複雜;而用WebService則能夠低成本的實現,小公司也能夠用上。
(6).在C/S的程序中,WebService能夠實現網頁無總體刷新的與服務器打交道並取數。
缺點:
(1).WebService使用了XML對數據封裝,會形成大量的數據要在網絡中傳輸。
(2).WebService規範沒有規定任何與實現相關的細節,包括對象模型、編程語言,這一點,它不如CORBA。
10.多線程有幾種實現方法,都是什麼?同步有幾種實現方法,都是什麼?
答:多線程有兩種實現方法,分別是繼承Thread類與實現Runnable接口
同步的實現方面有兩種,分別是synchronized,wait與notify
11.JSP中動態INCLUDE與靜態INCLUDE的區別?
動態INCLUDE用jsp:include動做實現
它老是會檢查所含文件中的變化,適合用於包含動態頁面,而且能夠帶參數
靜態INCLUDE用include僞碼實現,定不會檢查所含文件的變化,適用於包含靜態頁面java