JSP企業面試題整理(1)
圖示三層架構,並說明其特點,如何?,每層實現什麼功能?(企業筆試題)
在兩層應用中,應用程式直接同資料庫進行對話。三層結構在使用者介面代碼和資料庫中間加入了一個附加的邏輯層,通常這個層叫做“商務邏輯層”。在“商務邏輯層”,如果第一層和第二層在不同的電腦上,通常該層利用的技術是EJB(Enterprise JavaBean)技術、CORBA(Common Object Request Broker Architecture)技術和DCOM技術(Distributed Component Object Model,分散式元件物件模型)。在Java公司專屬應用程式領域中,表示邏輯層通常可以是HTML、Applet和JSP,商務邏輯層一般利用EJB來實現
Java包含哪三個版本,每個版本有什麼功能,各個版本的應用領域?
SUN以J2EE為核心推出SUN-ONE(SUN Open Network Environment)戰略,該戰略包括三個部分:J2SE(Java 2 Standard Edition,Java 2標準版)、J2ME(Java 2 Micro Edition,Java 2微型版)和J2EE。
J2SE主要:用於建立典型的案頭與工作站應用的Java平台。從配置上來說,只要安裝JDK(Java Development Kit),就建立了一個J2SE開發和運行平台。
J2ME主要用於建立嵌入式應用程式(如PDA、儀錶),J2ME開發平台需要J2SE平台的支援。開發領域包括:高端的資訊家電,比如:電視機頂盒,網路電視和網路可視電話等,低端的資訊家電,比如手機,呼叫器和PDA等。
J2EE的任務是提供一個平台獨立的、攜帶型、多使用者、安全以及標準的企業級平台,伺服器端部署用Java技術來完成。J2EE主要用於建立可擴充的公司專屬應用程式,包括13種核心技術規範
1-3 名詞解釋:EJB JNDI RMI。(企業筆試題)
EJB(Enterprise Java Bean,企業級JavaBean)J2EE體系的最核心技術是EJB,提供了一個架構來開發分布式商務邏輯,顯著地簡化了具有延展性和高度複雜的企業級應用的開發
JNDI(Java Naming and Directory Interface,Java命名和目錄介面)JNDI用於名字和目錄服務,提供了一致的介面來存取和操作企業級的資源,如DNS(Domain Name Service)和本地檔案系統等
RMI(Remote Method Invocation,遠程方法調用)RMI是在遠程對象上調用一些方法,使用了連續的方式在用戶端和伺服器端傳遞資料,RMI是EJB技術基礎
JSP企業面試題整理(2)
2-1 簡述Java語言的核心機制。
Java語言套件含三種核心機制:JAVA 虛擬機器、垃圾收集機制和代碼安全檢測。
1、JAVA 虛擬機器(Java Virtual Machine,JVM)
在一台電腦上由軟體或硬體類比的電腦。Java虛擬機器讀取並處理經編譯過的平台無關的位元組碼class檔案。
2、垃圾收集機制(Garbage collection)
在C/C++ 等語言中,由程式員負責回收無用記憶體。Java語言解除了程式員回收無用記憶體空間的責任。它提供一種系統級線程跟蹤儲存空間的分配情況。並在JVM的空閑時,檢查並釋放那些可被釋放的儲存空間空間。垃圾收集在Java程式運行過程中自動進行,程式員無法精確控制和幹預。
3、代碼安全性檢測(Code Security)
Java執行代碼的時候,由JVM對啟動並執行代碼進行安全性檢測,當進行一些非法操作的時候,比如修改一些系統設定的時候,JVM會發出警告。
2-2 比較基礎資料型別 (Elementary Data Type)和引用資料類型的區別。
Java 語言共有八種基礎資料型別 (Elementary Data Type):四種整數類型(byte、short、int、long),兩種浮點數類型(float、double),一種字元類型(char),一種布爾類型(boolean)。
Java語言中除8種基礎資料型別 (Elementary Data Type)以外的資料類型稱為參考型別,也叫做複合資料型別。在程式中聲明的參考型別變數只是為該對象起的一個名字,或者說是對該對象的引用,變數的值是對象在記憶體空間中的儲存地址而不是對象本身,這就是稱之為參考型別的原因
2-4 建構函式有什麼作用?簡述重載建構函式的好處。
建構函式也叫構造方法,是Java類中的一種特殊方法,其功能是建立其所屬類型的一個新的對象。聲明構造方法的文法規則如下:
< modifiers> <class_name>([< argu_list>]) {
[< statements>]
}
從中可以看到,構造方法與普通方法在聲明上的區別是,構造方法沒有傳回值類型、構造方法必須取和所屬類相同的名字。
在定義Java類時可以根據需要定義一個或多個構造方法,通常在構造方法中進行一些初始化工作。
2-5 簡述super、static和final的功能和作用。
如果子類中發生了方法重寫,那麼子類對象能調用父類中重寫前的方法,Java語言允許在子類中使用關鍵字super來引用父類的方法。
在Java類中聲明屬性和方法時,可使用關鍵字static做為修飾符。static標記的變數或方法由整個類共用,如存取控制許可權允許,可不必建立該類對象而直接用類名加‘.’調用。
在Java中聲明類、屬性和方法時,可使用關鍵字final來修飾。final所標記的成分具有“終態”的特徵,其具體規定如下:
l final標記的類不能被繼承。
l final標記的方法不能被子類重寫。
l final標記的變數(成員變數或局部變數)即成為常量,只能賦值一次。
2-6 集合元素:集合、散列表和枚舉的特點和作用。
常用的集合元素有:向量(Vector)、枚舉(Enumeration)、散列表(Hashtable)和屬性(Properties)等
向量(Vector)不要求每個元素的類型相同,向量中可以混合多種資料類型。向量可以在增加元素時動態增大。
向量提供了集合內容的順序訪問,散列表可以對集合內容進行隨機訪問,散列表提供的主要方法及其說明為。
l 用put(Object key,Object value)加進關鍵字/數值對
l 用get(Object key)取得一個關鍵字的值
枚舉也可以存放許多元素。一般用來儲存其他集合的傳回值。
2-7 關鍵字throw和throws的區別?(企業筆試題)
可以利用throw關鍵字自己拋出異常。
Throws一般在定義函數的時候使用,表明函數被調用的時候要拋出異常。
2-8 Java實現線程有幾種方式,各有什麼優點?
建立線程有兩種方式:使用Runnable介面和繼承Thread類。使用Runnable介面的實作類別來提供線程體,這是建立線程的基本方式。還可以採用直接繼承Thread類、重寫其中的run()方法並以之作為線程體的方式建立線程,
兩種建立線程方式的有兩方面的區別。
l 使用Runnable介面建立線程時可以將CPU,代碼和資料分開,形成清晰的模型。線程體run()方法所在的類還可以從其他類繼承一些有用的屬性或方法,並有利於保持程式風格的一致性。
l 直接繼承Thread類建立線程時,Thread子類無法再從其他類繼承。但這種情況編寫簡單,run()方法的當前對象就是線程對象,可直接操縱。