Java程序員常考筆試題

學識都 人氣:1.85W

以下是小編整理的Java程序員常考筆試題,不妨你也來測測看吧。看下會幾道題目。

Java程序員常考筆試題

1、HashMap和Hashtable的區別。

都屬於Map接口的類,實現了將惟一鍵映射到特定的值上。HashMap 類沒有分類或者排序。它允許一個null 鍵和多個null 值。Hashtable 類似於HashMap,但是不允許null 鍵和null 值。它也比HashMap 慢,因爲它是同步的,是線程安全的。

2、sleep() 和wait() 有什麼區別?

sleep是線程類(Thread)的方法,導致此線程暫停執行指定時間,給執行機會給其他線程,但是監控狀態依然保持,到時後會自動恢復。調用sleep不會釋放對象鎖。wait是Object類的方法,對此對象調用wait方法導致本線程放棄對象鎖,進入等待此對象的等待鎖定池,只有針對此對象發出notify方法(或notifyAll)後本線程才進入對象鎖定池準備獲得對象鎖進入運行狀態。

3、Collection 和Collections的區別。

Collections是個下的類,它包含有各種有關集合操作的靜態方法。

Collection是個下的接口,它是各種集合結構的父接口。

4、什麼時候用assert.

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

5、&和&&的區別。

& 是兩個數相與,是位運算符,&&是布爾邏輯運算符,連接兩個條件表達式的,兩個條件表達式都爲真時,整個才爲真

6、談談final, finally, finalize的區別。

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

finally:在異常處理時提供finally 塊來執行任何清除操作。如果拋出一個異常,那麼相匹配的catch 子句就會執行,然後控制就會進入finally 塊(如果有的話)。

finalize:方法名。Java 技術允許使用finalize() 方法在垃圾收集器將對象從內存中清除出去之前做必要的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調用的。它是在Object 類中定義的,因此所有的類都繼承了它。子類覆蓋finalize() 方法以整理系統資源或者執行其他清理工作。finalize() 方法是在垃圾收集器刪除對象之前對這個對象調用的。

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

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

8、。d(11.5)等於多少? d(-11.5)等於多少?

d(11.5)返回(long)12,d(-11.5)返回(long)-11;因爲返回最接近參數的long.通過加上1/2 將該結果舍入爲整數,取結果的基數並將其強制轉換爲long 類型。換句話說,結果等於以下表達式的值:(long)r(a + 0.5d)

9、Static Nested Class 和Inner Class的不同,說得越多越好(面試題有的很籠統)。

Static nested class(嵌套類)是將內部類聲明爲static.普通內部類對象隱式地保存了一個引用,指向創建它的外圍類對象,不能有static數據和static字段。嵌套類意味着:1> 要創建嵌套類的對象,並不需要其外圍類的對象;2>不能從嵌套類的對象中訪問非靜態的外圍類的對象。

10、ArrayList和Vector的區別。

1>同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程序不安全的,不是同步的2>數據增長:當需要增長時,Vector默認增長爲原來一培,而ArrayList卻是原來的一半。