- 相關推薦
java面試題目及答案
做好準備是Java面試者應該的,那么你有提前了解面試題目了嗎?以下是陽光網小編幫你們整理的java面試題目及答案,一起來學習啦。
java面試題目及答案(一)
1.在HashTable中上下文同步是什么意思?
同步意味著在一個時間點只能有一個線程可以修改哈希表,任何線程在執行hashtable的更新操作前需要獲取對象鎖,其他線程等待鎖的釋放。
2.哪些集合類提供對元素的隨機訪問?
ArrayList、HashMap、TreeMap和HashTable類提供對元素的隨機訪問。
3.Comparable和Comparator接口的區別是什么?
Comparable和Comparator接口被用來對對象集合或者數組進行排序。Comparable接口被用來提供對象的自然排序,我們可以使用它來提供基于單個邏輯的排序。 Comparator接口被用來提供不同的排序算法,我們可以選擇需要使用的Comparator來對給定的'對象集合進行排序。
4.與Java集合框架相關的有哪些最好的實踐?
(1)根據需要選擇正確的集合類型。比如,如果指定了大小,選用Array而非ArrayList。如果想根據插入順序遍歷一個Map,需要使用TreeMap。如果不想重復,應使用Set。
(2)一些集合類允許指定初始容量,所以如果能夠估計到存儲元素的數量,可以使用它,就避免了大小調整。
(3)基于接口編程,而非基于實現編程,它允許后來輕易地改變實現。
(4)總是使用類型安全的泛型,避免在運行時出現ClassCastException。
(5)使用JDK提供的不可變類作為Map的key,可以避免實現hashCode()和equals()。
(6)盡可能使用Collections工具類,或者獲取只讀、同步或空的集合,而非編寫自己的實現。它將會提供代碼重用性,它有著更好的穩定性和可維護性。
java面試題目及答案(二)
1,談談final, finally, finalize的區別。
final?修飾符(關鍵字)如果一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不能既被聲明為 abstract的,又被聲明為final的。將變量或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變量必須在聲明時給定初值,而在以后的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載
finally?再異常處理時提供 finally 塊來執行任何清除操作。如果拋出一個異常,那么相匹配的 catch 子句就會執行,然后控制就會進入 finally 塊(如果有的話)。
finalize?方法名。Java 技術允許使用 finalize() 方法在垃圾收集器將對象從內存中清除出去之前做必要的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調用的。它是在 Object 類中定義的,因此所有的類都繼承了它。子類覆蓋 finalize() 方法以整理系統資源或者執行其他清理工作。finalize() 方法是在垃圾收集器刪除對象之前對這個對象調用的。
2,Anonymous Inner Class (匿名內部類) 是否可以extends(繼承)其它類,是否可以implements(實現)interface(接口)? 匿名的內部類是沒有名字的內部類。不能extends(繼承) 其它類,但一個內部類可以作為一個接口,由另一個內部類實現。
3,Static Nested Class 和 Inner Class的不同,說得越多越好(面試題有的很籠統)。
Nested Class (一般是C++的說法),Inner Class (一般是JAVA的說法)。Java內部類與C++嵌套類最大的不同就在于是否有指向外部的引用上。
注: 靜態內部類(Inner Class)意味著1創建一個static內部類的對象,不需要一個外部類對象,2不能從一個static內部類的`一個對象訪問一個外部類對象
4,&和&&的區別。
&是位運算符。&&是布爾邏輯運算符。
5,HashMap和Hashtable的區別。
都屬于Map接口的類,實現了將惟一鍵映射到特定的值上。
HashMap 類沒有分類或者排序。它允許一個 null 鍵和多個 null 值。
Hashtable 類似于 HashMap,但是不允許 null 鍵和 null 值。它也比 HashMap 慢,因為它是同步的。
6,Collection 和 Collections的區別。
Collections是個java.util下的類,它包含有各種有關集合操作的靜態方法。
Collection是個java.util下的接口,它是各種集合結構的父接口。
7,什么時候用assert。
斷言是一個包含布爾表達式的語句,在執行這個語句時假定該表達式為 true。如果表達式計算為 false,那么系統會報告一個 AssertionError。它用于調試目的:
assert(a > 0); // throws an AssertionError if a <= 0
斷言可以有兩種形式:
assert Expression1 ;
assert Expression1 : Expression2 ;
Expression1 應該總是產生一個布爾值。
Expression2 可以是得出一個值的任意表達式。這個值用于生成顯示更多調試信息的 String 消息。
斷言在默認情況下是禁用的。要在編譯時啟用斷言,需要使用 source 1.4 標記:
javac -source 1.4 Test.java
要在運行時啟用斷言,可使用 -enableassertions 或者 -ea 標記。
要在運行時選擇禁用斷言,可使用 -da 或者 -disableassertions 標記。
要系統類中啟用斷言,可使用 -esa 或者 -dsa 標記。還可以在包的基礎上啟用或者禁用斷言。
可以在預計正常情況下不會到達的任何位置上放置斷言。斷言可以用于驗證傳遞給私有方法的參數。不過,斷言不應該用于驗證傳遞給公有方法的參數,因為不管是否啟用了斷言,公有方法都必須檢查其參數。不過,既可以在公有方法中,也可以在非公有方法中利用斷言測試后置條件。另外,斷言不應該以任何方式改變程序的狀態。
java面試題目及答案(三)
1.什么是Java集合API?
Java集合API是用來表示和操作集合的統一框架,包括接口、實現類以及幫助程序員完成一些編程的算法。
2.Java集合框架的接口有哪些?
具體來說,Java集合框架有6個集合接口,最基本的是Collection接口,由三個接口Set、List、SortedSet繼承,另外兩個接口是Map、SortedMap,這兩個接口不繼承Collection,表示映射而不是真正的集合。
Collection為集合層級的根接口。一個集合代表一組對象,這些對象即為它的元素。Java平臺不提供這個接口任何直接的實現。
Set是一個不能包含重復元素的集合。這個接口對數學集合抽象進行建模,被用來代表集合。
List是一個有序集合,可以包含重復元素。可以通過它的索引來訪問任何元素,更像長度動態變換的數組。
Map是一個將key映射到value的對象.一個Map不能包含重復的key。
3.Iterator是什么?
Iterator接口提供遍歷任何Collection的接口。我們可以從一個Collection中使用迭代器方法來獲取迭代器實例。迭代器取代了Java集合框架中的Enumeration。迭代器允許調用者在迭代過程中移除元素。
4.Iterator和Listlterator的區別是什么?
(1)Iterator可以遍歷Set和List集合,而ListIterator只能遍歷List。
(2)Iterator只可以向前遍歷,而LIstIterator可以雙向遍歷。
(3)ListIterator從Iterator接口繼承,然后添加了一些額外的功能,比如添加一個元素、替換一個元素、獲取前面或后面元素的索引位置。
5.對比HashMap和HashTable。
兩者都是用key-value方式獲取數據。Hashtable是原始集合類之一(也稱作遺留類)。HashMap作為新集合框架的一部分在Java2的1.2版本中加入。它們之間有以下區別:
(1) HashMap允許key和value為null,而HashTable不允許。
(2)HashTable是同步的,而HashMap不是。所以HashMap適合單線程環境,HashTable適合多線程環境。
(3)HashMap提供對key的Set進行遍歷,因此它是fail-fast的,但HashTable提供對key的.Enumeration進行遍歷,它不支持fail-fast。
(4)HashTable被認為是個遺留的類,如果尋求在迭代的時候修改Map,應使用CocurrentHashMap。
6.如何決定選用HashMap還是TreeMap?
對于在Map中插入、刪除和定位元素這類操作,HashMap是最好的選擇。然而,假如你需要對一個有序的key集合進行遍歷,TreeMap是更好的選擇。基于你的collection的大小,也許向HashMap中添加元素會更快,將map換為TreeMap進行有序key的遍歷。
【java面試題目及答案】相關文章:
java面試常見題目04-03
java經典面試題目12-09
java面試題目201704-05
java面試題目大全12-04
java面試問題及答案04-05
java面試基礎題及答案04-02
java常見面試題目04-04
java基礎面試題及答案04-05
高級java面試題及答案04-04