java面试宝典有用么_常见的Java面试题汇总
該樓層疑似違規已被系統折疊?隱藏此樓查看此樓
二、關于集合
1、Java中的集合及其繼承關系
關于集合的體系是每個人都應該爛熟于心的,尤其是對我們經常使用的List,Map的原理更該如此.
2、poll()方法和remove()方法區別?
poll() 和 remove() 都是從隊列中取出一個元素,但是 poll() 在獲取元素失敗的時候會返回空,但是 remove() 失敗的時候會拋出異常。
3、LinkedHashMap和PriorityQueue的區別
PriorityQueue 是一個優先級隊列,保證最高或者最低優先級的的元素總是在隊列頭部,但是 LinkedHashMap 維持的順序是元素插入的順序。當遍歷一個 PriorityQueue 時,沒有任何順序保證,但是 LinkedHashMap 課保證遍歷順序是元素插入的順序。
4、WeakHashMap與HashMap的區別是什么?
WeakHashMap 的工作與正常的 HashMap 類似,但是使用弱引用作為 key,意思就是當 key 對象沒有任何引用時,key/value 將會被回收。
5、ArrayList和LinkedList的區別?
最明顯的區別是 ArrrayList底層的數據結構是數組,支持隨機訪問,而 LinkedList 的底層數據結構是雙向循環鏈表,不支持隨機訪問。使用下標訪問一個元素,ArrayList 的時間復雜度是 O(1),而 LinkedList 是 O(n)。
6、ArrayList和Array有什么區別?
Array可以容納基本類型和對象,而ArrayList只能容納對象。
Array是指定大小的,而ArrayList大小是固定的
7、ArrayList和HashMap默認大小?
在 Java 7 中,ArrayList 的默認大小是 10 個元素,HashMap 的默認大小是16個元素(必須是2的冪)。這就是 Java 7 中 ArrayList 和 HashMap 類的代碼片段。
private static final int DEFAULT_CAPACITY = 10; //from HashMap.java
JDK 7 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4;
// aka 16
8、Comparator和Comparable的區別?
Comparable 接口用于定義對象的自然順序,而 comparator 通常用于定義用戶定制的順序。Comparable 總是只有一個,但是可以有多個 comparator 來定義對象的順序。
9、如何實現集合排序?
你可以使用有序集合,如 TreeSet 或 TreeMap,你也可以使用有順序的的集合,如 list,然后通過 Collections.sort() 來排序。
如何打印數組內容
你可以使用 Arrays.toString() 和 Arrays.deepToString() 方法來打印數組。由于數組沒有實現 toString() 方法,所以如果將數組傳遞給 System.out.println() 方法,將無法打印出數組的內容,但是 Arrays.toString() 可以打印每個元素。
10、LinkedList的是單向鏈表還是雙向?
雙向循環列表,具體實現自行查閱源碼。
11、TreeMap是實現原理
采用紅黑樹實現,具體實現自行查閱源碼。
遍歷ArrayList時如何正確移除一個元素
該問題的關鍵在于面試者使用的是 ArrayList 的 remove() 還是 Iterator 的 remove()方法。這有一段示例代碼,是使用正確的方式來實現在遍歷的過程中移除元素,而不會出現 ConcurrentModificationException 異常的示例代碼。
12、什么是ArrayMap?它和HashMap有什么區別?
ArrayMap是Android SDK中提供的,非Android開發者可以略過。
ArrayMap是用兩個數組來模擬map,更少的內存占用空間,更高的效率。
總結
以上是生活随笔為你收集整理的java面试宝典有用么_常见的Java面试题汇总的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: univ底盘装甲怎么样
- 下一篇: mysql 删除线程_mysql删除阻塞