search
大公司面試喜歡問的Java問題都有哪些?

大公司面試喜歡問的Java問題都有哪些?

進入一線互聯網公司是很多程序員的夢想,但是很多人好不容易有機會面試卻遺憾以失敗告終,大公司的面試題目真的有那麼難嗎?有沒有什麼共性呢?

最近看了一些大公司Java面試的題目,發現確實有不少共性,比方說對於JAVA集合類的使用都比較重視,比方說基礎知識都是必考項目,比方說幾乎都會有一道測驗品行的題目......小編為大家總結了技術層面大公司面試時的一些共性問題,空閑的時候就學起來吧,現在正是跳槽旺季,也是大公司的招聘需求最高的時候,希望能夠對大家接下來的面試有所幫助。

介面:Collection

中所周知,Collection是最基本的集合介面,一個Collection代表一組Object,也就是Collection的元素(Elements)。有的Collection允許相同的元素但有些卻做不到,同理於一部分能排序有些部分卻不支持。Java SDK提供的類都是繼承自Collection的「子介面」,例如List和Set,但是不提供直接繼承自Collection的類。

用Iterator模式實現遍歷集合

Collection有一個很重要的方法:iterator,返回一個Iterator(迭代器),用於遍歷集合的所有元素。Iterator模式能夠把訪問邏輯從不同的集合類中抽象出來,以達到避免向客戶端暴露集合的內部結構的目的。比較典型的用法就是:

Iterator it = collection.iterator; // 獲得一個迭代器

while(it.hasNext) {

Object obj = it.next; // 得到下一個元素

}

另外,由Collection介面衍生出來的兩個介面是List和Set。

List介面

List屬於有序的Collection,通過這個介面可以精確的控制每個元素插入的位置。用戶可以通過索引來訪問List中的元素,這就類似於Java的數組。接下來我們還會提及set,二者不一樣的地方就在於,List是允許有相同元素的。

除此之外不得不提,List還提供了另外一個listIterator方法,返回一個ListIterator介面,跟標準的Iterator介面相比,ListIterator多了一些add之類的方法,並且能夠添加、刪除、設定元素,並且可以向前或者向後遍歷。

另外不得不提的就是,實現List介面的常用類有LinkedList、ArrayList、Vector、Stack等等。

Set介面

Set是一種不包含重複的元素的Collection,也就是說任意的兩個元素e1和e2都有e1.equals(e2)=false,Set最多有一個null元素。顯然,Set的構造函數是有約束條件的,傳入的Collection參數不能包含重複的元素。

另外需要重點強調的就是:一定要小心操作可變對象(Mutable Object)。如果說一個Set中的可變元素改變了自身狀態導致Object.equals(Object)=true可能會導致某些問題出現。

關於Java集合類的問題和重要知識點還有很多,不僅僅是理論上的,還有很多實際操作中的經驗問題,這些對於面試都是十分重要的。由於時間和篇幅的限制,小編就先為大家總結到這裡,接下來小編還會為大家持續推送Java集合類的問題和知識點,助力新年面試新工作拿到心儀offer。

另外大家對於面試或者Java方面的只是還有什麼疑問,有哪些點是希望小編進行總結推送的,歡迎留言討論,小編將儘力滿足大家的需求。當然,如果你有更好的想法或建議,也歡迎留言討論,我們一直堅持獨樂樂不如眾樂樂,好的idea當然要分享出來才能吧價值最大化。

歡迎關注微信公眾號【中軟卓越北京EEC】

熱門推薦

本文由 一點資訊 提供 原文連結

一點資訊
寫了5860316篇文章,獲得23263次喜歡
留言回覆
回覆
精彩推薦