螞蟻金服1至4面(Java崗):JVM+Redis+CAS+算法+併發+消息隊列

一面

先自我介紹下

  • 聊項目,逆向系統是什麼意思
  • 聊項目,逆向系統用了哪些技術
  • 線程池的線程數怎麼確定?
  • 如果是IO操作為主怎麼確定?
  • 如果計算型操作又怎麼確定?
  • Redis熟悉麼,瞭解哪些數據結構
  • zset底層怎麼實現的
  • 跳錶的查詢過程是怎麼樣的,查詢和插入的時間複雜度
  • 紅黑樹瞭解麼,時間複雜度
  • 說下Dubbo的原理
  • 踩過什麼坑沒有
  • CAS瞭解麼
  • 還了解其他同步機制麼
  • 我們做一道題吧,數組A,2*n個元素,n個奇數、n個偶數,設計一個算法,使得數組奇數下標位置放置的都是奇數,偶數下標位置放置的都是偶數
  • 時間差不多了,先到這吧。你有什麼想問我的?

二面

主要是技術部分

1.volatile和synchronized原理
2.HashMap,ConcurrentHashMap
3.epoll,select,poll
4.TCP,UDP(tcp的具體狀態沒答出來
5.jvm內存分佈,垃圾收集,eden區
6.jvm調優(不會
7.java對象頭裡有什麼(只答了age,monitor,其他的忘了
8.mysql主從複製

三面

  • 面試官和藹很多,你先介紹下自己吧
  • 你對服務治理怎麼理解的?
  • 項目中的限流怎麼實現的?
  • 具體怎麼實現的?
  • 如果突然很多線程同時請求令牌,有什麼問題?
  • 怎麼解決呢?
  • 如果不用消息隊列怎麼解決?
  • 分佈式追蹤的上下文是怎麼存儲和傳遞的?
  • Dubbo的RpcContext是怎麼傳遞的?
  • 主線程的ThreadLocal怎麼傳遞到線程池?
  • 你說的內存洩漏具體是怎麼產生的?
  • 線程池的線程是不是必須手動remove才可以回收value?
  • 你說的內存洩漏是指主線程還是線程池?
  • 你說下SpringMVC不同用戶登錄的信息怎麼保證線程安全的?
  • 我們聊聊mysql吧,說下索引結構
  • 為什麼使用B+樹?
  • 什麼是索引覆蓋?
  • Java為什麼要設計雙親委派模型?
  • 什麼時候需要自定義類加載器?
  • 我們做一道題吧,手寫一個對象池
  • 有什麼想問我的麼
螞蟻金服1至4面(Java崗):JVM+Redis+CAS+算法+併發+消息隊列

總結

面試官很專業,要求基礎知識很熟悉,面試之前一定要準備後再去面試。LeetCode題目也要刷。

切記面試前一定要刷題和準備,簡歷上的項目不熟悉的千萬不要寫上去,寫上去的項目備好2-3個技術方案。

我個人認為,作為技術人就要保持終生學習的態度,讓學習力成為核心競爭力,才能不被時代所淘汰,而高效的時間支配能讓你變得更加優秀,所以,我在這裡將這份耗時兩個月整理出來的核心技能面試知識點,送給有需要的人,希望這份資料能對大家有所幫助

如何獲取免費面試學習資料?

資料獲取方式:

【關注+轉發】後,私信關鍵詞 【資料】即可免費獲取!

螞蟻金服1至4面(Java崗):JVM+Redis+CAS+算法+併發+消息隊列

螞蟻金服1至4面(Java崗):JVM+Redis+CAS+算法+併發+消息隊列


分享到:


相關文章: