最全的BAT大廠面試題整理~ 大家笑納

大家可以關注一下小編 長期更新幹貨的

大家可以把不同意見在評論區發表一下 小編會採納的

最全的BAT大廠面試題整理~ 大家笑納

java面試題

熟練掌握java是很關鍵的,大公司不僅僅要求你會使用幾個api,更多的是要你熟悉源碼實現原理,甚至要你知道有哪些不足,怎麼改進,還有一些java有關的一些算法,設計模式等等。

(一) java深入源碼級的面試題(有難度)

哪些情況下的對象會被垃圾回收機制處理掉?

講一下常見編碼方式?

utf-8編碼中的中文佔幾個字節;int型幾個字節?

靜態代理和動態代理的區別,什麼場景使用?

Java的異常體系

談談你對解析與分派的認識。

修改對象A的equals方法的簽名,那麼使用HashMap存放這個對象實例的時候,會調用哪個equals方法?

Java中實現多態的機制是什麼?

如何將一個Java對象序列化到文件裡?

說說你對Java反射的理解

說說你對Java註解的理解

說說你對依賴注入的理解

說一下泛型原理,並舉例說明

Java中String的瞭解

String為什麼要設計成不可變的?

Object類的equal和hashCode方法重寫,為什麼?

(二) 數據結構

常用數據結構簡介

併發集合瞭解哪些?

列舉java的集合以及集合之間的繼承關係

集合類以及集合框架

容器類介紹以及之間的區別(容器類估計很多人沒聽這個詞,Java容器主要可以劃分為4個部分:List列表、Set集合、Map映射、工具類(Iterator迭代器、Enumeration枚舉類、Arrays和Collections),具體的可以看看這篇博文 Java容器類)

List,Set,Map的區別

List和Map的實現方式以及存儲方式

HashMap的實現原理

HashMap數據結構?

HashMap源碼理解

HashMap如何put數據(從HashMap源碼角度講解)?

HashMap怎麼手寫實現?

ConcurrentHashMap的實現原理

ArrayMap和HashMap的對比

HashTable實現原理

TreeMap具體實現

HashMap和HashTable的區別

HashMap與HashSet的區別

HashSet與HashMap怎麼判斷集合元素重複?

集合Set實現Hash怎麼防止碰撞

ArrayList和LinkedList的區別,以及應用場景

數組和鏈表的區別

二叉樹的深度優先遍歷和廣度優先遍歷的具體實現

堆的結構

堆和樹的區別

堆和棧在內存中的區別是什麼(解答提示:可以從數據結構方面以及實際實現方面兩個方面去回答)?

什麼是深拷貝和淺拷貝

手寫鏈表逆序代碼

講一下對樹,B+樹的理解

講一下對圖的理解

判斷單鏈表成環與否?

鏈表翻轉(即:翻轉一個單項鍊表)

合併多個單有序鏈表(假設都是遞增的)

(三) 線程、多線程和線程池

開啟線程的三種方式?

線程和進程的區別?

為什麼要有線程,而不是僅僅用進程?

run()和start()方法區別

如何控制某個方法允許併發訪問線程的個數?

在Java中wait和seelp方法的不同;

談談wait/notify關鍵字的理解

什麼導致線程阻塞?

線程如何關閉?

講一下java中的同步的方法

數據一致性如何保證?

如何保證線程安全?

如何實現線程同步?

兩個進程同時要求寫或者讀,能不能實現?如何防止進程的同步?

線程間操作List

Java中對象的生命週期

Synchronized用法

synchronize的原理

談談對Synchronized關鍵字,類鎖,方法鎖,重入鎖的理解

static synchronized 方法的多線程訪問和作用

同一個類裡面兩個synchronized方法,兩個線程同時訪問的問題

volatile的原理

談談volatile關鍵字的用法

談談volatile關鍵字的作用

談談NIO的理解

synchronized 和volatile 關鍵字的區別

synchronized與Lock的區別

ReentrantLock 、synchronized和volatile比較

ReentrantLock的內部實現

lock原理

死鎖的四個必要條件?

怎麼避免死鎖?

對象鎖和類鎖是否會互相影響?

什麼是線程池,如何使用?

Java的併發、多線程、線程模型

談談對多線程的理解

多線程有什麼要注意的問題?

談談你對併發編程的理解並舉例說明

談談你對多線程同步機制的理解?

如何保證多線程讀寫文件的安全?

多線程斷點續傳原理

斷點續傳的實現

非技術性問題&HR問題彙總

這裡整理的是一些與技術沒有直接關係的面試題,但是能夠考察你的綜合水平,所以不要以為不是技術問題,就不看,往往有時候就是這樣一些細節的題目被忽視,而錯過了一次次面試機會。

(一)非技術問題

介紹你做過的哪些項目

都使用過哪些框架、平臺?

都使用過哪些自定義控件?

研究比較深入的領域有哪些?

對業內信息的關注渠道有哪些?

最近都讀哪些書?

有沒有什麼開源項目?

自己最擅長的技術點,最感興趣的技術領域和技術點

項目中用了哪些開源庫,如何避免因為引入開源庫而導致的安全性和穩定性問題

實習過程中做了什麼,有什麼產出?

(二)HR提出的面試問題

您在前一家公司的離職原因是什麼?

講一件你印象最深的一件事情

介紹一個你影響最深的項目

介紹你最熱愛最擅長的專業領域

公司實習最大的收穫是什麼?

與上級意見不一致時,你將怎麼辦?

自己的優點和缺點是什麼?並舉例說明?

你的學習方法是什麼樣的?實習過程中如何學習?實習項目中遇到的最大困難是什麼以及如何解決的?

說一件最能證明你能力的事情

針對你你申請的這個職位,你認為你還欠缺什麼

如果通過這次面試我們單位錄用了你,但工作一段時間卻發現你根本不適合這個職位,你怎麼辦?

項目中遇到最大的困難是什麼?如何解決的?

你的職業規劃以及個人目標、未來發展路線及求職定位

如果你在這次面試中沒有被錄用,你怎麼打算?

評價下自己,評價下自己的技術水平,個人代碼量如何?

通過哪些渠道瞭解的招聘信息,其他同學都投了哪些公司?

業餘都有哪些愛好?

你做過的哪件事最令自己感到驕傲?

假如你晚上要去送一個出國的同學去機場,可單位臨時有事非你辦不可,你怎麼辦?

就你申請的這個職位,你認為你還欠缺什麼?

當前的offer狀況;如果BATH都給了offer該如何選?

你對一份工作更看重哪些方面?平臺,技術,氛圍,城市,還是money?

理想薪資範圍;杭州崗和北京崗選哪個?

理想中的工作環境是什麼?

談談你對跳槽的看法

說說你對行業、技術發展趨勢的看法

實習過程中周圍同事/同學有哪些值得學習的地方?

家人對你的工作期望及自己的工作期望

如果你的工作出現失誤,給本公司造成經濟損失,你認為該怎麼辦?

若上司在公開會議上誤會你了,該如何解決?

是否可以實習,可以實習多久?

在五年的時間內,你的職業規劃

你看中公司的什麼?或者公司的那些方面最吸引你?


分享到:


相關文章: