1. 程式人生 > >Java基礎階段筆試題2

Java基礎階段筆試題2

return throws 行處理 錯誤 try ray 一段 內存操作 ica

Java基礎階段筆試題2

  1. 問題:Collection 和 Collections的區別?(10分)

本題目的:檢測對面結合類的理解

答案:

Collection是集合類的上級接口3,繼承與他的接口主要有Set List。(2

Collections是針對集合類的一個幫助類3,他提供一系列靜態方法實現對各種集合的搜索、排序、線程安全化等操作2

  1. 問題:Set裏的元素能重復麽?用什麽方法來區分重復與否呢? 是用==還是equals()? 它們有何區別 (10分)

本題目的:檢測Set的理解。

答案:

Set裏的元素是不能重復的(2),用iterator()方法來區分重復與否(

2)。

equals()是判讀兩個Set是否相等

equals()和==方法決定引用值是否指向同一對象equals()在類中被覆蓋,為的是當兩個分離的對象的內容和類型相配的話,返回真值

  1. 問題:abstract classinterface有什麽區別?(10分)·

本題目的:檢測final的理解和使用

答案:

聲明方法的存在而不去實現它的類被叫做抽象類(abstract class),1它用於要創建一個體現某些基本行為的類,在類中可以定義抽象方法,讓子類去實現。1不能創建abstract 類的實例。然而可以創建一個抽象類類型的變量,並讓它指向具體子類的一個實例。1

不能有抽象構造函數或抽象靜態方法。1Abstract 類的子類為它們父類中的所有抽象方法提供實現,否則它們也是抽象類為。1

接口(interface)可以理解為是抽象類的變體。1接口中的所有方法都是抽象的,沒有一個有程序體。1接口只可以定義static final成員變量。1)接口之間是多繼承的。(1) 類與接口之間是多實現的。(1instanceof 運算符可以用來決定某對象的類是否實現了接口。

  1. 問題:JAVA語言如何進行異常處理?關鍵字:throws,throw,try,catch,finally分別代表什麽意義?。(10分)

本題目的:檢測值異常的理解

答案:

Java通過面向對象的方法進行異常處理,把各種不同的異常進行分類,並提供了良好的接口。2)

在Java中,每個異常都是一個對象,它是Throwable類或其它子類的實例。1)

當一個方法出現異常後便拋出一個異常對象,該對象中包含有異常信息,調用這個對象的方法可以捕獲到這個異常並進行處理。1)

Java的異常處理是通過5個關鍵詞來實現的:try、catch、throw、throws和finally。一般情況下是用try來執行一段程序,如果出現異常,系統會拋出一個異常,這時候你可以通過它的類型來捕捉(catch)它,或最後(finally)由缺省處理器來處理。1)

用try來指定一塊預防所有"異常"的程序。1)

緊跟在try程序後面,應包含一個catch子句來指定你想要捕捉的"異常"的類型。1)

throw語句用來明確地拋出一個"異常"。1)

throws用來標明一個成員函數可能拋出的各種"異常"。1)

finally為確保一段代碼不管發生什麽"異常"都被執行一段代碼。1)

  1. 問題:ArrayList,Vector, LinkedList的存儲性能和特性。(10分)

本題目的:檢測ArrayList,Vector, LinkedList的理解和使用

答案:

ArrayListVector都是使用數組方式存儲數據2,此數組元素數大於實際存儲的數據以便增加和插入元素,它們都允許直接按序號索引元素,1但是插入元素要涉及數組元素移動等內存操作,1所以索引數據快而插入數據慢1Vector由於使用了synchronized方法(線程安全),通常性能上較ArrayList差,2LinkedList使用雙向鏈表實現存儲,1按序號索引數據需要進行前向或後向遍歷,但是插入數據時只需要記錄本項的前後項即可,所以插入速度較快。2

  1. 問題:談談final, finally的區別(10分)

本題目的:檢測對於final, finally的理解

答案:

final—修飾符(關鍵字)如果一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。1)因此一個類不能既被聲明為 abstract的,又被聲明為final的。1)將變量或方法聲明為final,可以保證它們在使用中不被改變。1)被聲明為final的變量必須在聲明時給定初值,而在以後的引用中只能讀取,不可修改。1)被聲明為final的方法也同樣只能使用,不能重載。(1)

finally—在異常處理時提供 finally 塊來執行任何釋放資源的操作。(2)如果拋出一個異常,那麽相匹配的 catch 子句就會執行,然後控制就會進入 finally 塊(如果有的話)。(3)

  1. 問題:ArrayList和Vector的區別,HashMap和Hashtable的區別?(10分)

本題目的:檢測對於ArrayListVector的區別,HashMapHashtable的區別

答案:

就ArrayList與Vector主要從二方面來說。

一.同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程序不安全的,不是同步的(2

二.數據增長:當需要增長時,Vector默認增長為原來一培,而ArrayList卻是原來的一半(2

就HashMap與HashTable主要從三方面來說。

一.歷史原因:Hashtable是基於陳舊的Dictionary類的,HashMap是Java 1.2引進的Map接口的一個實現(2

二.同步性:Hashtable是線程安全的,也就是說是同步的,而HashMap是線程序不安全的,不是同步的2

三.值:只有HashMap可以讓你將空值作為一個表的條目的key或value2

  1. 問題:errorexception有什麽區別?(10分)

本題目的:對於錯誤和異常的理解

答案:

error 表示恢復不是不可能但很困難的情況下的一種嚴重問題。比如說內存溢出。不可能指望程序能處理這樣的情況。(5)

exception 表示一種設計或實現問題。也就是說,它表示如果程序運行正常,從不會發生的情況(5)

  1. 問題:try {}裏有一個return語句,那麽緊跟在這個try後的finally {}裏的code會不會被執行,什麽時候被執行,在return前還是後?(10

本題目的:檢測對於異常中return執行的順序的理解

答案:

會執行5,在return前執行5

  1. 問題:給我個你最常見到的runtime exception。(10分)

本題目的:檢測常見異常的掌握情況,由於目前遇到的異常比較少,每個3分,只要能寫出3個即可給10

答案:下面列舉出常見的5個異常:

IndexOutOfBoundsException,NullPointerException,ArithmeticException,ClassCastExceptionFileNotFoundException等。

Java基礎階段筆試題2