當前位置:學問君>學習教育>考研>

2016最新Java筆試題集錦

學問君 人氣:2.9W

還在找java的筆試題嗎,下面本站小編爲大家精心蒐集了關於2016最新Java筆試題的集錦,歡迎大家參考借鑑,希望可以幫助到大家!

2016最新Java筆試題集錦

1.MVC的各個部分都有那些技術來實現?如何實現?

答:MVC是Model-View-Controller的簡寫。"Model" 代表的是應用的業務邏輯(透過JavaBean,EJB組件實現), "View"是應用的表示面(由JSP頁面產生),"Controller" 是提供應用的處理過程控制(一般是一個Servlet),透過這種設計模型把應用邏輯,處理過程和顯示邏輯分成不同的組件實現。這些組件可以進行交互和重用。

2.J2EE是什麼?

答:Je22是Sun公司提出的多層(multi-diered),分佈式(distributed),基於組件(component-base)的企業級應用模型(enterpriese application model).在這樣的一個應用系統中,可按照功能劃分爲不同的組件,這些組件又可在不同計算機上,並且處於相應的層次(tier)中。所屬層次包括客戶層(clietn tier)組件,web層和組件,Business層和組件,企業資訊系統(EIS)層。

3.J2EE是技術還是平臺還是框架?

答:J2EE本身是一個標準,一個爲企業分佈式應用的開發提供的標準平臺。

J2EE也是一個框架,包括JDBC、JNDI、RMI、JMS、EJB、JTA等技術。

4.STRUTS的應用(如STRUTS架構)

答:Struts是採用Java Servlet/JavaServer Pages技術,開發Web應用程序的開放源碼的framework。 採用Struts能開發出基於MVC(Model-View-Controller)設計模式的應用構架。 Struts有如下的主要功能:

一.包含一個controller servlet,能將用戶的請求發送到相應的Action對象。

二.JSP自由tag庫,並且在controller servlet中提供關聯支援,幫助開發員創建交互式表單應用。

三.提供了一系列實用對象:XML處理、透過Java reflection APIs自動處理JavaBeans屬性、國際化的提示和消息。

5.WEB SERVICE名詞解釋。JSWDL開發包的介紹。JAXP、JAXM的解釋。SOAP、UDDI,WSDL解釋。

答:Web ServiceWeb Service是基於網絡的、分佈式的模組化組件,它執行特定的任務,遵守具體的技術規範,這些規範使得Web Service能與其他相容的組件進行互操作。

JAXP(Java API for XML Parsing) 定義了在Java中使用DOM, SAX, XSLT的通用的接口。這樣在你的程序中你只要使用這些通用的接口,當你需要改變具體的實現時候也不需要修改代碼。

JAXM(Java API for XML Messaging) 是爲SOAP通信提供訪問方法和傳輸機制的API。

WSDL是一種 XML 格式,用於將網絡服務描述爲一組端點,這些端點對包含面向文檔資訊或面向過程資訊的消息進行操作。這種格式首先對操作和消息進行抽象描述,然後將其綁定到具體的網絡協議和消息格式上以定義端點。相關的具體端點即組合成爲抽象端點(服務)。

SOAP即簡單對象訪問協議(Simple Object Access Protocol),它是用於交換XML編碼資訊的輕量級協議。

UDDI 的目的是爲電子商務建立標準;UDDI是一套基於Web的、分佈式的、爲Web Service提供的、資訊註冊中心的實現標準規範,同時也包含一組使企業能將自身提供的Web Service註冊,以使別的企業能夠發現的訪問協議的實現標準。

6.C/S 與 B/S 區別:

答:有如下八個方面的不同:

(1)硬件環境不同:

C/S 一般建立在專用的網絡上, 小範圍裏的網絡環境, 局域網之間再透過專門服務器提供連接和數據交換服務.

B/S 建立在廣域網之上的, 不必是專門的網絡硬件環境,例與電話上網, 租用設備. 資訊自己管理. 有比C/S更強的適應範圍, 一般只要有操作系統和瀏覽器就行

(2)對安全要求不同

C/S 一般面向相對固定的用戶羣, 對資訊安全的控制能力很強. 一般高度機密的資訊系統採用C/S 結構適宜. 可以透過B/S發佈部分可公開資訊.

B/S 建立在廣域網之上, 對安全的控制能力相對弱, 可能面向不可知的用戶。

(3)對程序架構不同

C/S 程序可以更加註重流程, 可以對權限多層次校驗, 對系統執行速度可以較少考慮.

B/S 對安全以及訪問速度的多重的考慮, 建立在需要更加優化的基礎之上. 比C/S有更高的要求 B/S結構的程序架構是發展的趨勢, 從MS的.Net系列的BizTalk 2000 Exchange 2000等, 全面支援網絡的構件搭建的系統. SUN 和IBM推的JavaBean 構件技術等,使 B/S更加成熟.

(4)軟件重用不同

C/S 程序可以不可避免的整體性考慮, 構件的重用性不如在B/S要求下的構件的重用性好.

B/S 對的多重結構,要求構件相對獨立的功能. 能夠相對較好的重用.就入買來的餐桌可以再利用,而不是做在牆上的石頭桌子

(5)系統維護不同

C/S 程序由於整體性, 必須整體考察, 處理出現的問題以及系統升級. 升級難. 可能是再做一個全新的系統

B/S 構件組成,方面構件個別的更換,實現系統的無縫升級. 系統維護開銷減到最小.用戶從網上自己下載安裝就可以實現升級.

(6)處理問題不同

C/S 程序可以處理用戶面固定, 並且在相同區域, 安全要求高需求, 與操作系統相關. 應該都是相同的系統

B/S 建立在廣域網上, 面向不同的用戶羣, 分散地域, 這是C/S無法作到的. 與操作系統平臺關係最小.

(7)用戶接口不同

C/S 多是建立的Window平臺上,表現方法有限,對程序員普遍要求較高

B/S 建立在瀏覽器上, 有更加豐富和生動的表現方式與用戶交流. 並且大部分難度減低,減低開發成本.

(8)資訊流不同

C/S 程序一般是典型的中央集權的機械式處理, 交互性相對低

B/S 資訊流向可變化, B-B B-C B-G等資訊、流向的變化, 更像交易中心。

7.什麼是JNDI

答:(Java Naming & Directory Interface)JAVA命名目錄服務。主要提供的功能是:提供一個目錄系統,讓其它各地的應用程序在其上面留下自己的索引,從而滿足快速查找和定位分佈式應用程序的功能。

8.什麼是JMS

答:(Java Message Service)JAVA消息服務。主要實現各個應用程序之間的通訊。包括點對點和廣播

9.什麼是JTA

答:(Java Transaction API)JAVA事務服務。提供各種分佈式事務服務。應用程序只需調用其提供的接口即可。

10.開發中都用到了那些設計模式?用在什麼場合?

答:每個模式都描述了一個在我們的環境中不斷出現的問題,然後描述了該問題的解決方案的核心。透過這種方式,你可以無數次地使用那些已有的解決方案,無需在重複相同的工作。主要用到了MVC的設計模式。用來開發JSP/Servlet或者J2EE的相關應用。簡單工廠模式等。

11.、j2ee常用的設計模式?說明工廠模式。

答:Java中的23種設計模式:

Factory(工廠模式), Builder(建造模式), Factory Method(工廠方法模式),

Prototype(原始模型模式),Singleton(單例模式), Facade(門面模式),

Adapter(適配器模式), Bridge(橋樑模式), Composite(合成模式),

Decorator(裝飾模式), Flyweight(享元模式), Proxy(代理模式),

Command(命令模式), Interpreter(解釋器模式), Visitor(訪問者模式),

Iterator(迭代子模式), Mediator(調停者模式), Memento(備忘錄模式),

Observer(觀察者模式), State(狀態模式), Strategy(策略模式),

Template Method(模板方法模式), Chain Of Responsibleity(責任鏈模式)

工廠模式:工廠模式是一種經常被使用到的模式,根據工廠模式實現的類可以根據提供的數據生成一組類中某一個類的實例,通常這一組類有一個公共的抽象父類並且實現了相同的方法,但是這些方法針對不同的數據進行了不同的操作。首先需要定義一個基類,該類的子類透過不同的方法實現了基類中的方法。然後需要定義一個工廠類,工廠類可以根據條件生成不同的子類實例。當得到子類的實例後,開發人員可以調用基類中的方法而不必考慮到底返回的是哪一個子類的實例。

12.UML方面

答:標準建模語言UML。用例圖,靜態圖(包括類圖、對象圖和包圖),行爲圖,交互圖(順序圖,合作圖),實現圖

13.RMI

RMI 指的是遠程方法調用 (Remote Method Invocation)。它是一種機制,能夠讓在某個 Java 虛擬機上的對象調用另一個Java 虛擬機中的對象上的方法。可以用此方法調用的任何對象必須實現該遠程接口。調用這樣一個對象時,其參數爲"marshalled" 並將其從本地虛擬機發送到遠程虛擬機(該遠程虛擬機的參數爲 "unmarshalled")上。該方法終止時,將編組來自遠程機的結果並將結果發送到調用方的虛擬機。如果方法調用導致拋出異常,則該異常將指示給調用方。

JAVA 基礎

1.如何獲得數組的長度?

數組名.length

2.訪問修飾符“public/private/protected/缺省的修飾符”的使用類?

public : 公共,均可訪問

private: 私有的,同一個java類中可以訪問.子類不能訪問.

protected: 同一個包中的類都可訪問.子類可以訪問.

缺省,friendly :當前類,同一個包,都可以訪問.

作用域 當前類 同一package 子孫類 其他package

public √ √ √ √

protected √ √ √ ×

friendly √ √ × ×

private √ × × ×

3.Anonymous Inner Class (匿名內部類) 是否可以extends(繼承)其它類,是否可以implements(實現)interface(接口)?

匿名內部類是沒有名字的內部類,不能繼承其它類,但一個內部類可以作爲一個接口,由另一個內部類實現.

一、由於匿名內部類沒有名字,所以它沒有構造函數。因爲沒有構造函數,所以它必須完全借用父類的構造函數來實例化,換言之:匿名內部類完全把創建對象的任務交給了父類去完成。

二、在匿名內部類裏創建新的方法沒有太大意義,但它可以透過覆蓋父類的方法達到神奇效果,如上例所示。這是多態性的體現。

三、因爲匿名內部類沒有名字,所以無法進行向下的強制類型轉換,持有對一個匿名內部類對象引用的變量類型一定是它的直接或間接父類類型。

new <類或接口> <類的主體>

匿名類

匿名類是不能有名稱的類,所以沒辦法引用它們。必須在創建時,作爲new語句的一部分來聲明它們。

這就要採用另一種形式的new語句,如下所示:

new <類或接口> <類的主體>

這種形式的new語句聲明一個新的匿名類,它對一個給定的類進行擴展,或者實現一個給定的接口。它還創建那個類的一個新實例,並把它作爲語句的結果而返回。要擴展的類和要實現的接口是new語句的操作數,後跟匿名類的主體。

如果匿名類對另一個類進行擴展,它的主體可以訪問類的成員、覆蓋它的方法等等,這和其他任何標準的類都是一樣的。如果匿名類實現了一個接口,它的主體必須實現接口的方法。

注意匿名類的聲明是在編譯時進行的,實例化在執行時進行。這意味着for循環中的一個new語句會創建相同匿名類的幾個實例,而不是創建幾個不同匿名類的一個實例。

從技術上說,匿名類可被視爲非靜態的內部類,所以它們具有和方法內部聲明的非靜態內部類一樣的權限和限制。

如果要執行的任務需要一個對象,但卻不值得創建全新的對象(原因可能是所需的類過於簡單,或者是由於它只在一個方法內部使用),匿名類就顯得非常有用。匿名類尤其適合在Swing應用程序中快速創建事件處理程序。

exp:

return new Contents() {

private int i = 11;

public int value() { return i; }

};

這種奇怪的語法要表達的意思是:“創建從Contents衍生出來的匿名類的一個對象”。由new表達式返回的句柄會自動上溯造型成一個Contents句柄。匿名內部類的語法其實要表達的是:

class MyContents extends Contents {

private int i = 11;

public int value() { return i; }

}

return new MyContents();

若試圖定義內部類,並想使用在匿名內部類外部定義的一個對象,則編譯器要求外部對象必須是final屬性.

public class Parcel9 {

public Destination

dest(final String dest, final float price) {

return new Destination() {

private int cost;

// Instance initialization for each object:

{

cost = Math.round(price);

if(cost > 100)

System.out.println("Over budget!");

}

private String label = dest;

public String readLabel() { return label; }

};

}

public static void main(String[] args) {

Parcel9 p = new Parcel9();

Destination d = p.dest("Tanzania", 101.395F);

}

}

4.static nested class 和 inner class的不同?

nested class在c++中是嵌套類,inner class在java中是內部類.不同就是在於是否有指向外部的`引用上.靜態內部類意味着創建一個static內部類的對象,不需要一個外部類對象;不能從一個static內部類的一個對象訪問到一個外部類的對象.

5.&和&&的區別

&是位運算符,表示按位與運算;&&是邏輯運算符,表示邏輯與(and)

6.Collection和Collections的區別

collection是集合類的上級接口,繼承與它的接口主要是set和list

其中list必須以特定的順序容納元素;而一個set不能包含重複的元素.

映射(Map)一系列"鍵-值"對.可以返回自己鍵的一個set,一個包含自己值的list,或者包含自己(鍵-值)對的一個list.

均可構建自己的反覆器.

collections類是針對集合類的一個幫助類.它提供一系列的靜態方法對各種集合的搜尋,排序,線程安全化等操作.

public class SimpleCollection {

public static void main(String[] args) {

Collection c = new ArrayList();

for(int i = 0; i < 10; i++)

c.add(Integer.toString(i));

Iterator it = c.iterator();

while(it.hasNext())

System.out.println(it.next());

}

}

7.什麼時候用assert

assertion(斷言)在軟件開發中是一種常用的調試方式,很多開發語言中都支援這種機制。在實現中,assertion就是在程序中的一條語句,它對一個boolean表達式進行檢查,一個正確程序必須保證這個boolean表達式的值爲true;如果該值爲false,說明程序已經處於不正確的狀態下,系統將給出警告或退出。一般來說,assertion用於保證程序最基本、關鍵的正確性。assertion檢查通常在開發和測試時開啓。爲了提高性能,在軟件發佈後,assertion檢查通常是關閉的.

8.String s = new String("xyz");創建了幾個String Object***

兩個,一個字元對象,一個字元對象引用對象

9.math.round(11.5)和math.round(-11.5)

前者等於12,後者等於-11.round方法返回與參數最接近的長整數.參數加0.5,求其floor

10. short s1 = 1;s1 = s1+1;是否有錯誤? short s1 = 1;s1 += 1;是否有錯誤?

前者s1+1返回一個int型,需要強制類型轉換.

後者正確.

11.java種有沒有goto?

有,爲保留字.但是尚未使用.

12.Overload和Override的區別。Overloaded的方法是否可以改變返回值的類型?