本文咱們經過一篇真實的一線面經,帶你們去體驗一下 BAT 等互聯網公司的面試現場氛圍!面試者是筆者之前的下屬,多年的好朋友。這是他去年早些時候出去面試,拿到 BAT 等多家一線互聯網公司技術專家 Offer 的面試經歷。java
本文咱們經過一篇真實的一線面經,帶你們去體驗一下 BAT 等互聯網公司的面試現場氛圍!面試
面試者是筆者之前的下屬,多年的好朋友。這是他去年早些時候出去面試,拿到 BAT 等多家一線互聯網公司技術專家 Offer 的面試經歷。算法
先介紹一下這位朋友的我的經歷:小程序
2.因爲公司業務發展較爲平緩,因此職業上升機會較少。
3.朋友對其負責的系統架構和技術已經很是熟悉,薪資上也較難有大幅度的增加,至於晉升更高的級別,短時間內也不容易
所以,在仔細思考一番以後,決定出來看看機會,可否在帶團隊的規模、技術以及薪資上實現一個突破。緩存
一 一面
一面是一個獵頭給朋友推的一個職位,BAT 中某一個大廠的某個團隊,具體就不說是哪一個部門了。
一面就直接過去當面聊了一次,大概從下午 2 點聊到了下午 4 點多,時間很長,炮火至關猛烈。
一面面試官也是專家職級,上來就是先聊項目,針對項目中的各類細節仔細問,就項目展開,並且極其注重細節。
一樣是經過互聯網公司最喜歡的連環炮形式發問。好比在面試過程當中,聊到了緩存,連環炮以下。接着,面試官繼續深扣了不少細節。
面試官:性能優化
1.Android開發中,可能會形成致使內存泄漏的問題及使用Handler形成內存泄漏的分析和解決?
2.鏈接複用 :節省鏈接創建時間,如開啓 keep-alive。
3.Android客戶端和服務端如何使用Token和Session,使用過程當中出現的問題以及解決方案?
4.線程池。線程池的使用?如何合理配置線程池的大小
5.Java和JS的交互,以及遇到的問題如何解決
6.ContentProvider瞭解多少?
7.Android中提供哪些數據持久存儲的方法?
8.Java中的I/O流讀寫怎麼作?
9.SharePreferences適用情形?使用中須要注意什麼?
10.瞭解SQLite中的事務處理嗎?是如何作的?
11.使用SQLite時會有哪些優化操做?
等等等等,朋友:紙筆翻飛,大腦高度運轉,一個接一個的回答架構
如上所述,全部問題,所有結合項目,落地到生產中,同時注重聊技術的不少細節,包括技術的一些原理
簡單總結:併發
整體來講,一面還算順利,畢竟都是結合項目來問的,各類細節平時朋友進行架構設計時,都會仔細考慮過。ide
可是這裏給你們提醒一句,通常某個同窗出去面試,回來以後其餘人問他面試經驗,通常都是問:都有啥面試題?面試官是怎麼問的?高併發
說實話,你們看了上面那些問題,可能會以爲說,哦,其實我也能夠答出來,沒什麼特別的。
但其實並非這樣,若是隻是拿高級崗位的 Offer,你的技術會佔很大比重。
可是若是要拿專家崗位的 Offer,你到底有沒有線上真實的高負載的系統架構經驗,很是重要。
一樣的問題,普通人會回答的很普通,可是經歷過真實幾十億流量請求的人必定會說出大量經驗總結、教訓以及踩坑。
並且對整套複雜的大型系統究竟是如何抗住高併發的,會了然於胸,熟悉全部的細節。
因此針對一面,通常就是結合項目,深挖細扣,看你到底有多少水平,作過多複雜的系統。
這塊說實話,作過就是作過,沒作過就是沒作過,是不可能做假的。不少同窗可能本身平時也看過不少書和博客,可是看書和博客只是基礎,若是沒有真實的線上生產環境的歷練,是確定不夠的。畢竟實踐出真知!
二 二面
一面就順利經過了,緊接着安排了第二輪面試。二面面試官應該是這個團隊的 Leader,P8 級別的,若是進去,應該就是朋友將來的頂頭上司。
據朋友講,二面面試官態度很是好,很和善,看來一面面試官反饋以後,這個 Team 對朋友仍是比較重視的。
技術深度
二面內容就從廣度變成深度了,面試官技術實力很深厚,應該是有十幾年經驗。對相關技術深挖了不少東西。
好比,
4.ANR 如何產生?
9.簡述消息機制相關
10.進程間通訊方式?
11.Binder相關?
12.okhttp源碼?
13.RxJava簡介及其源碼解讀?
面試官聲音略顯慵懶疲憊……我懷疑他是否是面了太多人已經麻木了
系統設計、工程素養、帶團隊
同時二面很是重視考察系統設計能力、工程素養、帶團隊的能力。好比面試官就這個部門負責的一塊業務
須要闡述以往本身帶團隊項目的總體設計思路,從哪點出發考慮,存在哪些挑戰以及最後如何完成的
帶團隊,讓朋友說一下,如何招人、面試標準、如何搭建團隊的人才梯度,等等
三 三面:
三道算法題,要求在一個小時以內作完。
1.翻轉一個單項鍊表 1->2->3->4->5->null =====> 5->4->3->2->1->null
2.string to integer
3.合併多個單有序鏈表(假設都是遞增的)
另外,考察了各類軟素質。好比說責任心、抗壓能力、自我驅動,讓朋友舉例說明本身過去的一些事情,來證實軟素質。
同時還會聊聊職業價值觀,是否願意加班,等等吧。最後也聊了聊朋友的職場指望,包括這個團隊是幹什麼的,將來的發展方向之類的。
朋友以爲最重要的仍是前面兩面,其實這一面,只要人品端正,平時幹活兒認真負責,通常的都沒什麼太大的問題。
絕對不要裸面!絕對不要裸面!絕對不要裸面!重要的事情說三遍!裸面必敗,並且若是一問三不知,那麼給人的印象就是不好的。
若是要衝着心儀的大公司去,最起碼精心準備 1 個月以上,你們務必記住這一點,這也是朋友此次的一個重要心得,準備充分了,纔能有備無患。
四 四面:
總監面:問了一些java 同步相關的。
HR:聊了一些價值觀的東西,好比以前以爲作過最難的事情是啥,怎麼克服的,當時啥心態。
還有就是爲啥要離職,沒有發展空間?那當時沒考慮過公司內部 transfer(轉崗)嗎?你的績效平時怎麼樣?你以爲你跟同事相處的怎麼樣?
終面內容,總結起來,其實仍是一句話,你人品正就行了,通常都問題不大,老老實實的踏實回答。
總結
我本身面試了一些公司,拿了一些offer,可是仍是想去BAT,因此那些offer最終都拒了
結合個人面試經歷與同事們的面試歷程,總結幾點:
1.有些規模小的公司很注重你是否是全能的,巴不得你什麼都會,又給不起錢,福利待遇很很差,各類避稅措施。
2.馬爸爸的公司很注重項目經驗是否匹配,往死了問項目,項目簡單的話是很吃虧的,鵝廠但願你是聰明的機靈的,度娘但願你基礎好,熱愛技術;
3.有些獵頭朋友是很是專業的,不只給你安排面試流程,還給你提供不少有價值的信息,另外獵頭通常推薦的都是高級職位;
4.面試真的很看眼緣,不少時候你和麪試官一見面,若是你以爲面試官和你氣場不合,那極可能就沒戲了
5.我認爲一面必須表現的很好,由於二面的面試官會參考一面的評價,一旦一面評價通常,第一印象就很差了
6.若是你出身很好,學校承認度高,那你會有優點,請聯想「好學生犯錯與壞學生犯錯時老師的表現「
最後,可能不少人對本身到底須要學習進階那個方面不是很清晰,我找了一份圖但願能夠用得上
想學習更多Android知識,或者獲取以上相關資料請加入Android技術開發交流2羣:862625886。本羣可免費獲取Gradle、RxJava、小程序、Hybrid、移動架構、NDK、React Native、性能優化等技術教程!