天天看點

5面螞蟻金服Java崗,順利拿下offer曆程分享

牛逼的來了!
5面螞蟻金服Java崗,順利拿下offer曆程分享

一面:

  • 介紹一下自己;
  • 問項目經曆, 聊"資料同步"
  • 接着聊上了 K8S 的項目
  • 有沒有什麼鑽研得比較深的技術?
  • kubernetes 的架構是怎麼樣的?
  • golang 與 java 的比較
  • golang 的 gc 算法
  • 怎麼擴充 kubernetes scheduler, 讓它能 handle 大規模的節點排程?
  • 你有什麼想問我的?

二面:

  • 先聊了聊項目。
  • 給 Prometheus 做了哪些改動?
  • 自研配置中心, 具體做了哪些内容?
  • 有用過 MySQL 的什麼進階特性嗎?
  • 配置中心的核心資料表是怎麼設計的?
  • 為什麼在業務裡用 Redis, Redis 有什麼優點?
  • 對 Redis 裡資料結構的實作熟悉嗎?
  • 用過 Redis 的哪些資料結構, 分别用在什麼場景?
  • Java 初始化一個線程池有哪些參數可以配置, 分别是什麼作用?
  • 自己寫的 Java 應用調優過哪些 JVM 參數, 為什麼這麼調優?
  • 用 Jetty 的時候有沒有配什麼參數, 為什麼這麼配?
  • Jetty QTP 等待隊列配置成無限的話, 你覺得好嗎? 會有什麼問題嗎?
  • 用過 Linux Bash 裡的哪些指令, 分别用它們幹嘛?

一道筆試題: 需要在給的連結中作答, 不能 google, 不能跳出, 不能用 IDE: 用 Java 的 wait + notify 機制實作;

題目如下:

啟動兩個線程, 一個輸出 1,3,5,7…99, 另一個輸出 2,4,6,8…100 最後 STDOUT 中按序輸出 1,2,3,4,5…100

三面:

  • 依然先聊項目,對監控警報的項目很感興趣, 問了挺多細節, 最後問了一個問題: 現在要你實作一個語義不弱于 PromQL 的查詢語言, 你能實作嗎?
  • 你覺得做得最深入的項目是什麼?
  • 聊資料同步項目
  • Linux 掌握得怎麼樣?
  • Golang 掌握得怎麼樣?
  • 問算法掌握得怎麼樣?
  • 問最短路算法
  • k8s 掌握得怎麼樣?
  • k8s 的 exec 是怎麼實作的?

四面:

  • 覺得自己基礎知識掌握怎麼樣?
  • 平時一般會用到哪些資料結構?
  • 連結清單和數組相比, 有什麼優劣?
  • 如何判斷兩個無環單連結清單有沒有交叉點?
  • 如何判斷兩個有環單連結清單有沒有交叉點?
  • 如何判斷一個單連結清單有沒有環, 并找出入環點
  • TCP 和 UDP 有什麼差別?
  • 描述一下 TCP 四次揮手的過程中
  • TCP 有哪些狀态?
  • TCP 的 LISTEN 狀态是什麼?
  • TCP 的 CLOSE_WAIT 狀态是什麼?
  • 建立一個 socket 連接配接要經過哪些步驟?
  • 常見的 HTTP 狀态碼有哪些?
  • 301和302有什麼差別?
  • 504和500有什麼差別?
  • HTTPS 和 HTTP 有什麼差別?
  • 手寫快排

五面:

  • 介紹一下自己
  • 在 k8s 上做過哪些二次開發?
  • 自己用 Helm 建構過 chart 嗎?有哪些?
  • 有沒有考慮過自己封裝一個面向研發的 PaaS 平台?
  • 配置中心做了什麼?
  • 為什麼不用 zookeeper?
  • 配置中心如何保證一緻性?
  • Spring 裡用了單例 Bean, 怎麼保證通路 Bean 字段時的并發安全?
  • 假如我還想隔離兩個線程的資料, 怎麼辦?
  • Golang 裡的逃逸分析是什麼?怎麼避免記憶體逃逸?
  • Golang 的 GC 觸發時機是什麼?
  • 有沒有寫過 k8s 的 Operator 或 Controller?
  • 談一談你對微服務架構的了解;

最後