java试讲题目,常见的Java面试题汇总
該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓
二、關(guān)于集合
1、Java中的集合及其繼承關(guān)系
關(guān)于集合的體系是每個(gè)人都應(yīng)該爛熟于心的,尤其是對(duì)我們經(jīng)常使用的List,Map的原理更該如此.
2、poll()方法和remove()方法區(qū)別?
poll() 和 remove() 都是從隊(duì)列中取出一個(gè)元素,但是 poll() 在獲取元素失敗的時(shí)候會(huì)返回空,但是 remove() 失敗的時(shí)候會(huì)拋出異常。
3、LinkedHashMap和PriorityQueue的區(qū)別
PriorityQueue 是一個(gè)優(yōu)先級(jí)隊(duì)列,保證最高或者最低優(yōu)先級(jí)的的元素總是在隊(duì)列頭部,但是 LinkedHashMap 維持的順序是元素插入的順序。當(dāng)遍歷一個(gè) PriorityQueue 時(shí),沒有任何順序保證,但是 LinkedHashMap 課保證遍歷順序是元素插入的順序。
4、WeakHashMap與HashMap的區(qū)別是什么?
WeakHashMap 的工作與正常的 HashMap 類似,但是使用弱引用作為 key,意思就是當(dāng) key 對(duì)象沒有任何引用時(shí),key/value 將會(huì)被回收。
5、ArrayList和LinkedList的區(qū)別?
最明顯的區(qū)別是 ArrrayList底層的數(shù)據(jù)結(jié)構(gòu)是數(shù)組,支持隨機(jī)訪問(wèn),而 LinkedList 的底層數(shù)據(jù)結(jié)構(gòu)是雙向循環(huán)鏈表,不支持隨機(jī)訪問(wèn)。使用下標(biāo)訪問(wèn)一個(gè)元素,ArrayList 的時(shí)間復(fù)雜度是 O(1),而 LinkedList 是 O(n)。
6、ArrayList和Array有什么區(qū)別?
Array可以容納基本類型和對(duì)象,而ArrayList只能容納對(duì)象。
Array是指定大小的,而ArrayList大小是固定的
7、ArrayList和HashMap默認(rèn)大小?
在 Java 7 中,ArrayList 的默認(rèn)大小是 10 個(gè)元素,HashMap 的默認(rèn)大小是16個(gè)元素(必須是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的區(qū)別?
Comparable 接口用于定義對(duì)象的自然順序,而 comparator 通常用于定義用戶定制的順序。Comparable 總是只有一個(gè),但是可以有多個(gè) comparator 來(lái)定義對(duì)象的順序。
9、如何實(shí)現(xiàn)集合排序?
你可以使用有序集合,如 TreeSet 或 TreeMap,你也可以使用有順序的的集合,如 list,然后通過(guò) Collections.sort() 來(lái)排序。
如何打印數(shù)組內(nèi)容
你可以使用 Arrays.toString() 和 Arrays.deepToString() 方法來(lái)打印數(shù)組。由于數(shù)組沒有實(shí)現(xiàn) toString() 方法,所以如果將數(shù)組傳遞給 System.out.println() 方法,將無(wú)法打印出數(shù)組的內(nèi)容,但是 Arrays.toString() 可以打印每個(gè)元素。
10、LinkedList的是單向鏈表還是雙向?
雙向循環(huán)列表,具體實(shí)現(xiàn)自行查閱源碼。
11、TreeMap是實(shí)現(xiàn)原理
采用紅黑樹實(shí)現(xiàn),具體實(shí)現(xiàn)自行查閱源碼。
遍歷ArrayList時(shí)如何正確移除一個(gè)元素
該問(wèn)題的關(guān)鍵在于面試者使用的是 ArrayList 的 remove() 還是 Iterator 的 remove()方法。這有一段示例代碼,是使用正確的方式來(lái)實(shí)現(xiàn)在遍歷的過(guò)程中移除元素,而不會(huì)出現(xiàn) ConcurrentModificationException 異常的示例代碼。
12、什么是ArrayMap?它和HashMap有什么區(qū)別?
ArrayMap是Android SDK中提供的,非Android開發(fā)者可以略過(guò)。
ArrayMap是用兩個(gè)數(shù)組來(lái)模擬map,更少的內(nèi)存占用空間,更高的效率。
總結(jié)
以上是生活随笔為你收集整理的java试讲题目,常见的Java面试题汇总的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java减治法深度优先查找_排序|减治法
- 下一篇: mysql数据库group_key_【M