歡迎光臨
每天分享高質量文章

【面經+真題】畢業兩年的程式員,最後選擇了螞蟻金服

作為一個畢業兩年的程式員, 最近一直在尋找合適的機會能夠換一個環境。

一是尋找一個更加寬闊的舞臺不斷的提升自己;二是讓自己走出現在的舒適區域,迎接更多的挑戰和認識更多的人;當然還有為了獲得更好的一份收入。

下麵記錄了我的面試經驗,一方面用作後期自己回顧知識點,另一方便給正要面試的人一些經驗。

一面

  • 專案介紹

  • 專案中如何保證資料一致性的

  • 存在的問題

  • jvm 記憶體

  • 程式計數器的作用

  • gc 演演算法, 垃圾收集器

  • spring事務,事務實現的機制,如何保證事務的

  • 悲觀鎖,樂觀鎖

  • HashMap

  • 紅黑樹,B+樹

  • 資料庫死鎖,如何防止死鎖

二面

二面開始於5道題目,整體感覺還是比較難的。面試的前一天給我發的題目,然後晚上下班後(9點左右)我做了5個小時才完成。 第二天面試的時候,主要圍繞題目進行展開和發散。

從第一個題目延伸出(轉賬):

  • 分散式事務的保證。具體的解決方案;

  • 介面的冪等性;

  • 如果向某個賬戶轉賬在高併發環境下,設計的介面有什麼問題(資料庫瓶頸)

  • 如何解決上述的問題

  • 如果賬戶表很大,具有億萬級別,如何提高查詢效率(分庫分表)

  • 分庫分表具體操作,什麼時候分庫,什麼時候分表,各個使用場景

  • mysql主從

  • mysql如何保證主從的資料一致性

  • 資料庫的容災

第二個題目: 搶紅包

  • 搶紅包的實現方案;(我給出的解決方案是存下搶紅包的操作,然後樂觀鎖更新金額,保證資料的最終一致性)

  • 有沒有最佳化空間

  • 春晚紅包方案(包括限流,網路瞬間抖動,資料一致性)這一點聊了很久

  • 對分散式的看法

  • 開源中介軟體熟悉哪些?(只是做簡單瞭解)

三面

  • 讀書時候的經歷? 介紹讀書時候的專案

  • 專案一(支付營銷系統)的具體介紹, 架構,專案中某個操作的具體流程圖,如何壓測? 效能最佳化? 專案中機器的臺數,機器擴容標準? 執行緒池大小?執行緒數設定標準?

  • 平時用到了哪些集合?hashmap的問題?cpu 100%出現的情況?Treeset的實現?

  • 分散式事務,秒殺系統的要求?秒殺系統的設計原則?註意事項?專案中遇到的問題?解決放肆?

  • 專案二(分散式排程系統)的具體情況,架構?中間某些步驟的具體的設計思路。(這個挖的很深,而且面試官確實很厲害,幾分鐘能夠瞭解你整個專案的大致情況,知道你設計的痛點,然後諮詢你如何解決的)

  • kafka訊息可靠性保證?其他中介軟體有沒有瞭解過?平時閱讀什麼技術?

HR面試

HR面試主要問過往的經歷,以及個人的職業規劃,就職意向等。

個人總結

程式員的這條路上我一直在學習,自認為在同輩中水平較好,但透過這次面試我發現自己還有很多不足。

入行以來,接受過很多人的幫助。讀書時有老師同學互相分享經驗,畢業後我走過彎路,但好在我遇到了圖靈學院的老師,一次次不厭其煩的指導我,二面時老師影片指導我到凌晨。

 

面試結束,老師分析我的思路不夠開闊,看待問題不夠深入,比如HashMap出現100%CPU的情況以及原因。慶幸的是,最後我還是拿到了offer。

已同步到看一看
贊(0)

分享創造快樂