社招三面字節跳動、拼多多、五面螞蟻最終拿offer入職螞蟻金服

前言

2020年社招面試總結mysql

文章有點長,請耐心看完,絕對有收穫!不想聽我BB直接進入面試分享:面試

準備過程redis

字節跳動面試分享算法

拼多多面試分享sql

螞蟻金服面試分享數據庫

 

總結編程

提及來開始進行面試是年前倒數第二週,上午9點,我還在去公司的公交上,忽然收到螞蟻的面試電話,其實算不上真正的面試。面試官只是和我聊了下他們在作的事情(主要是作雙十一這裏大促的穩定性保障,偏中間件吧),說的很詳細,而後和我溝通了下是否有興趣,我表示有興趣,後面就收到正式面試的通知,最後成功入職螞蟻金服。數組

當時我本身也準備出去看看機會,順便看看本身的實力。當時我其實挺糾結的,一方面如今部門也正須要我,仍是能夠有一番做爲的,另外一方面以爲近一年來進步緩慢,沒有之前飛速進步的成就感了,並且業務和技術偏於穩定,加上本身也屬於那種比較懶散的人,骨子裏仍是但願可以突破現狀,持續在技術上有所精進。安全

進入正題,前後進行了字節跳動、拼多多、螞蟻金服的面試。性能優化

準備過程

先說說我本身的狀況,我2016先在螞蟻實習了將近三個月,而後去了我如今的老東家,三年多工做經驗,能夠說畢業後就一直老老實實在老東家打怪升級,雖然說有螞蟻的實習經歷,可是由於時間過短,仍是有點虛的。因此面試官看到我簡歷第一個問題絕對是這樣的。

「哇,你在螞蟻待過,不錯啊」,面試官笑嘻嘻地問到。「是的,還好」,我說。「爲啥才三個月?」,面試官臉色一沉問到。「嘩啦啦解釋一通。。。」,我解釋道。「哦,原來如此,那咱們開始面試吧」,面試官一本正經說到。

尼瑪,早知道不寫螞蟻的實習經歷了,後面仔細一想,當初寫上螞蟻不就給簡歷加點料嘛。

言歸正傳,準備過程其實很早開始了(固然這不是說我工做時老想着跳槽,由於我明白如今的老東家並非終點,我還須要不斷提高),具體可追溯到從螞蟻離職的時候,當時出來也面了不少公司,沒啥大公司,面了大概5家公司,都拿到offer了。

工做之餘經常會去額外研究本身感興趣的技術以及工做用到的技術,力求把原理搞明白,而且會本身實踐一把。此外,買了N多書,基本有時間就會去看,補補基礎,什麼操做系統、數據結構與算法、MySQL、JDK之類的源碼,基本都好好溫習了(文末會列一下本身看過的書和一些好的資料)。我深知基礎就像「木桶效應」的短板,決定了能裝多少水。

此外,在正式決定看機會以前,我給本身列了一個提綱,主要包括Java要掌握的核心要點,有不懂的就查資料搞懂。我給本身定位仍是Java工程師,因此Java體系是必定要作到心中有數的,不少東西沒有常年的積累面試的時候很容易露餡,學習要對得起本身,不要騙人。

剩下的就是找平臺和內推了,除了螞蟻,頭條和拼多多都是找人內推的,感謝螞蟻面試官對個人欣賞,讓我再次入職螞蟻

平臺:脈脈、GitHub、v2

字節跳動

社招三面字節跳動、拼多多、五面螞蟻最終拿offer入職螞蟻金服

 

面試前

頭條的面試是三家裏最專業的,每次面試前有專門的HR和你約時間,肯定OK後再進行面試。每次都是經過視頻面試,由於都是以前都是電話面或現場面,因此視頻面試仍是有點不天然。也有人以爲視頻面試體驗很贊,固然蘿蔔青菜各有所愛。最坑的二面的時候對方面試官的網絡總是掉線,最後很冤枉的掛了(固然有一些點答得很差也是緣由之一)。因此仍是有點遺憾的。

一面

  1. 先自我介紹下
  2. 聊項目,逆向系統是什麼意思
  3. 聊項目,逆向系統用了哪些技術
  4. 線程池的線程數怎麼肯定?
  5. 若是是IO操做爲主怎麼肯定?
  6. 若是計算型操做又怎麼肯定?
  7. Redis熟悉麼,瞭解哪些數據結構?
  8. 跳錶的查詢過程是怎麼樣的,查詢和插入的時間複雜度?
  9. 紅黑樹瞭解麼,時間複雜度?
  10. 既然兩個數據結構時間複雜度都是O(logN),zset爲何不用紅黑樹
  11. 點了點頭,說下Dubbo的原理?
  12. CAS瞭解麼?
  13. 那咱們作一道題吧,數組A,2*n個元素,n個奇數、n個偶數,設計一個算法,使得數組奇數下標位置放置的都是奇數,偶數下標位置放置的都是偶數
  14. 先說下你的思路
  15. 下一個奇數?怎麼找?
  16. 有思路麼?
  17. 你這樣時間複雜度有點高,若是要求O(N)要怎麼作
  18. 時間差很少了,先到這吧。你有什麼想問個人?

二面

  1. 面試官和善不少,你先介紹下本身吧
  2. 你對服務治理怎麼理解的?
  3. 項目中的限流怎麼實現的?
  4. 具體怎麼實現的?
  5. 若是忽然不少線程同時請求令牌,有什麼問題?
  6. 怎麼解決呢?
  7. 若是不用消息隊列怎麼解決?
  8. 分佈式追蹤的上下文是怎麼存儲和傳遞的?
  9. Dubbo的RpcContext是怎麼傳遞的?
  10. 你說的內存泄漏具體是怎麼產生的?
  11. 線程池的線程是否是必須手動remove才能夠回收value?
  12. 那你說的內存泄漏是指主線程仍是線程池?
  13. 但是主線程不是都退出了,引用的對象不該該會主動回收麼?
  14. 那你說下SpringMVC不一樣用戶登陸的信息怎麼保證線程安全的?
  15. 這個直接用ThreadLocal不就能夠麼,你見過SpringMVC有鎖實現的代碼麼?
  16. 咱們聊聊mysql吧,說下索引結構
  17. 爲何使用B+樹?
  18. 什麼是索引覆蓋?
  19. Java爲何要設計雙親委派模型?
  20. 何時須要自定義類加載器?
  21. 咱們作一道題吧,手寫一個對象池
  22. 有什麼想問個人麼?

小結

頭條的面試確實很專業,每次面試官會提早給你發一個視頻連接,而後準點開始面試,並且考察的點都比較全。

面試官都有一個特色,會抓住一個值得深刻的點或者你沒說清楚的點深刻下去直到你把這個點講清楚,否則面試官會以爲你並無真正理解。二面面試官給了我一點建議,研究技術的時候必定要去研究產生的背景,弄明白在什麼場景解決什麼特定的問題,其實不少技術內部都是相通的。很誠懇,仍是很感謝這位面試官大大。

拼多多(三面)

社招三面字節跳動、拼多多、五面螞蟻最終拿offer入職螞蟻金服

 

面試前

面完字節跳動後,早就聽聞拼多多這個獨角獸,決定也去面一把。首先我在脈脈找了一個拼多多的HR,加了微信聊了下,發了簡歷便開始個人拼多多面試之旅。這裏要很是感謝拼多多HR小姐姐,從面試內推到offer確認一直都在幫我,人真的很nice。

一面

  1. 爲啥螞蟻只待了三個月?沒轉正?
  2. Java中的HashMap、TreeMap解釋下?
  3. TreeMap查詢寫入的時間複雜度多少?
  4. HashMap多線程有什麼問題?
  5. CAS和synchronize有什麼區別?都用synchronize不行麼?
  6. 若是要保證線程安全怎麼辦?(ConcurrentHashMap)
  7. ConcurrentHashMap怎麼實現線程安全的?
  8. get須要加鎖麼,爲何?
  9. volatile的做用是什麼?
  10. 底層怎麼實現的?
  11. 在多核CPU下,可見性怎麼保證?
  12. 聊項目,系統之間是怎麼交互的?
  13. 系統併發多少,怎麼優化?
  14. 給我一張紙,畫了一個九方格,都填了數字,給一個MN矩陣,從1開始逆時針打印這MN個數,要求時間複雜度儘量低
  15. 能夠先說下你的思路(想起來了,說了何時要變換方向的條件,向右、向下、向左、向上,依此循環)
  16. 有什麼想問個人?

二面

  1. 自我介紹下
  2. 手上還有其餘offer麼?
  3. 部門組織結構是怎樣的?
  4. 系統有哪些模塊,每一個模塊用了哪些技術,數據怎麼流轉的?
  5. 鏈路追蹤的信息是怎麼傳遞的?
  6. SpanId怎麼保證惟一性?
  7. RpcContext是在什麼維度傳遞的?
  8. Dubbo的遠程調用怎麼實現的?
  9. Spring的單例是怎麼實現的?
  10. 爲何要單獨實現一個服務治理框架?
  11. 誰主導的?內部還在使用麼?
  12. 逆向有想過怎麼作成通用麼?
  13. 有什麼想問的麼?

三面

二面老大面完後就直接HR面了,主要問了些職業發展、是否有其餘offer、以及入職意向等問題,順便說了下公司的福利待遇等,都比較常規啦。不過要說的是手上有其餘offer或者大廠經歷會有必定加分。

小結

拼多多的面試流程就簡單許多,畢竟是一個成立三年多的公司。面試難度中規中矩,只要基礎紮實應該不是問題。但不得不說工做強度很大,開始面試前HR就提早和我確認可否接受這樣強度的工做,想來的老鐵仍是要作好準備

 

螞蟻金服(五面)

社招三面字節跳動、拼多多、五面螞蟻最終拿offer入職螞蟻金服

 

一面

一面就作了一道算法題,要求兩小時內完成,給了長度爲N的有重複元素的數組,要求輸出第10大的數。典型的TopK問題,快排算法搞定。

算法題要注意的是合法性校驗、邊界條件以及異常的處理。另外,若是要寫測試用例,必定要保證測試覆蓋場景儘量全。加上平時刷刷算法題,這種考覈應該沒問題的。

二面

  1. 自我介紹下唄
  2. 開源項目貢獻過代碼麼?
  3. 目前該部門作什麼,業務簡單介紹下,內部有哪些系統,做用和交互過程說下
  4. Dubbo踩過哪些坑,分別是怎麼解決的?
  5. 開始進入正題,說下你對線程安全的理解
  6. 事務有哪些特性?
  7. 怎麼理解原子性?
  8. 樂觀鎖和悲觀鎖的區別?
  9. 這兩種鎖在Java和MySQL分別是怎麼實現的?
  10. HashMap爲何不是線程安全的?
  11. 怎麼讓HashMap變得線程安全?
  12. Collections的synchronize二者的區別是什麼?
  13. jdk1.8對ConcurrentHashMap作了哪些優化?
  14. redis主從機制瞭解麼?怎麼實現的?
  15. 有過GC調優的經歷麼?
  16. 有什麼想問的麼?

三面

  1. 簡單自我介紹下
  2. 監控系統怎麼作的,分爲哪些模塊,模塊之間怎麼交互的?用的什麼數據庫?
  3. 使用什麼存儲引擎,爲何使用InnnoDB?
  4. 訂單表有作拆分麼,怎麼拆的?
  5. 水平拆分後查詢過程描述下
  6. 若是落到某個分片的數據很大怎麼辦?
  7. 哈希取模會有什麼問題麼?
  8. 分庫分表後怎麼解決讀寫壓力?
  9. 拆分後主鍵怎麼保證唯一?
  10. Snowflake生成的ID是全局遞增惟一麼?
  11. 怎麼實現全局遞增的惟一ID?
  12. Mysql的索引結構說下
  13. 主鍵索引和普通索引的區別?
  14. 大家系統目前的瓶頸在哪裏?
  15. 你打算怎麼優化?簡要說下你的優化思路
  16. 有什麼想問我麼?

四面

  1. 介紹下本身
  2. 爲何要作逆向?
  3. 怎麼理解微服務?
  4. 服務治理怎麼實現的?
  5. 這個不是中間件作的事麼,爲何大家部門作?
  6. 說說Spring的生命週期吧
  7. 說說GC的過程
  8. CMS GC有什麼問題?
  9. 怎麼避免產生浮動垃圾?
  10. 強制young gc會有什麼問題?
  11. 知道G1麼?
  12. 回收過程是怎麼樣的?
  13. 你提到的Remember Set底層是怎麼實現的?
  14. 有什麼想問的麼?

五面

五面是HRBP面的,和我提早預定了時間,主要聊了以前在螞蟻的實習經歷、部門在作的事情、職業發展、福利待遇等。阿里面試官確實是具備一票否決權的,很看重你的價值觀是否match,通常都比較喜歡皮實的候選人。HR面必定要誠實,不要說謊,只要你說謊HR都會去證明,直接cut了。

  1. 以前螞蟻實習三個月怎麼不留下來?
  2. 實習的時候主管是誰?
  3. 實習作了哪些事情?
  4. 你對技術怎麼看?平時使用什麼技術棧?
  5. 最近有在研究什麼東西麼
  6. 你對SRE怎麼看
  7. 對待遇有什麼預期麼

最後HR還對我說目前穩定性保障部挺缺人的,但願我儘快回覆。

小結

螞蟻面試比較重視基礎,因此Java那些基本功必定要紮實。螞蟻的工做環境仍是挺讚的,由於我面的是穩定性保障部門,還有許多單獨的小組,什麼三年1班,頗有青春的感受。面試官基本水平都比較高,基本都P7以上,除了基礎還問了很多架構設計方面的問題,收穫仍是挺大的。

總結

從年前開始面試到最後大概一個多月的時間,真的有點身心俱疲的感受。最後拿到了拼多多、螞蟻的offer,仍是蠻幸運的。頭條的面試對我幫助很大,再次感謝面試官對個人誠懇建議,以及拼多多的HR對個人囉嗦的問題詳細解答。

這裏要說的是面試前要作好兩件事:簡歷和自我介紹,簡歷要好好回顧下本身作的一些項目,而後挑幾個亮點項目。自我介紹基本每輪面試都有,因此最好提早本身練習下,想好要講哪些東西,分別怎麼講。此外,簡歷提到的技術必定是本身深刻研究過的,沒有深刻研究也最好找點資料預熱下,不打無準備的仗。

這些年看過的書:

《Java核心知識》《Java面試寶典》《高併發與多線程》《Java程序性能優化》、《Spring實戰》、《Zookeeper》、《高性能MySQL》、《億級網站架構核心技術》、《可伸縮服務架構》、《Java編程思想》

說實話這些書不少只看了一部分,我一般會帶着問題看書,否則看着看着就睡着了,簡直是催眠良藥

社招三面字節跳動、拼多多、五面螞蟻最終拿offer入職螞蟻金服

 

最後,附一張本身面試前準備的腦圖:

社招三面字節跳動、拼多多、五面螞蟻最終拿offer入職螞蟻金服

 

面試前必定少不了刷題,爲了方便你們複習,我分享一波我的整理的面試大全寶典

想獲取我的高清面試準備的朋友能夠在文末領取及面試題含答案的資料

  • Java核心知識寶典整理
社招三面字節跳動、拼多多、五面螞蟻最終拿offer入職螞蟻金服

Java核心知識

  • Spring全家桶(實戰系列)
社招三面字節跳動、拼多多、五面螞蟻最終拿offer入職螞蟻金服

 

  • 其餘電子書資料
社招三面字節跳動、拼多多、五面螞蟻最終拿offer入職螞蟻金服

 

Step3:刷題

既然是要面試,那麼就少不了刷題,實際上春節回家後,哪兒也去不了,我本身是刷了很多面試題的,因此在面試過程當中纔可以作到心中有數,基本上會清楚面試過程當中會問到哪些知識點,高頻題又有哪些,因此刷題是面試前期準備過程當中很是重要的一點。

如下是我私藏的面試題:

社招三面字節跳動、拼多多、五面螞蟻最終拿offer入職螞蟻金服

 

寫在最後

不少人感嘆「學習無用」,實際上之因此產生無用論,是由於本身想要的與本身所學的匹配不上,這也就意味着本身學得遠遠不夠。不管是學習仍是工做,都應該有主動性,因此若是擁有大廠夢,那麼就要本身努力去實現它。

以上學習資料均免費放送,最後祝願各位身體健康,順利拿到心儀的offer!

資料獲取方式:掃描下方二維碼便可免費領取~

 

 

相關文章
相關標籤/搜索