小劉整理的 go 面試題

Go相關

  • map、channel、slice的底層實現,
  • sync.map、sync.pool、sync.Once的原理
  • GC的過程、寫屏障的含義及作用
  • GMP模型,觸發Goroutine切換的原因有哪些?for死循環會怎麼樣?全局goroutine裏面存儲什麼?
  • interface的底層實現,怎麼判空?
  • reflect的使用
  • 逃逸分析
  • context的使用
  • go 性能問題的定位過程(pprof的使用)
  • 協程池的使用

Mysql相關

  • 索引的分類
  • 爲什麼選擇B+樹實現索引?一般深度爲多少?b+樹和紅黑樹的區別?
  • 聚簇索引和非聚簇索引的區別
  • 創建索引後,查詢讀取I/O的次數
  • 索引的最左前綴原則
  • mysql數據的索引優化以及失效
  • 從學生表中查詢每個班的分數的前3名
  • mysql的隔離級別?處理什麼問題的(髒讀、幻讀、不可重複讀)
  • mysql的主從複製過程?
  • mysql的大表優化方式

Redis相關

  • redis的數據類型以及日常的應用
  • redis的發佈/訂閱的原理
  • zset的底層實現
  • 數據緩存過期策略
  • redis的部署模式
  • redis爲什麼速度比較快
  • reids的大key、熱key的處理
  • 如何實現分佈式鎖的
  • 持久化策略及其對比
  • 緩存雪崩、緩存擊穿、緩存穿透

Etcd相關

  • etcd是什麼?有什麼優勢
  • raft選主邏輯
  • 日誌複製
  • 腦裂問題
  • etcd的watch機制
  • etcd如何實現配置下發和服務發現
  • etcd對於偶數機器的集羣的選主處理
  • 選主實現邏輯

Prometheus相關

  • 簡介
  • 數據存儲原理
  • 數據類型

Grpc相關

  • 相較於restful的優勢
  • 數據交互方式
  • 限流(通過流模式傳輸時,發送方數據量過大,會發生什麼?)
  • protobuf和json的對比
  • grpc負載均衡的實現

Linux相關

  • awk
  • poll、epoll、select
  • I/O模型

網絡協議相關

  • http2的優勢
  • https的建連過程(7次握手)
  • 對稱加密和非對稱加密
  • icmp協議的原理
  • tcp三次握手、四次揮手
  • tcp 擁塞策略
  • tcp的time_wait狀態和colse_wait狀態
  • 如何解決tcp的粘包問題
  • quic協議是什麼
  • 如何理解網絡模型
  • http的狀態碼含義

智力題

  • 25匹馬,每次只能比賽5組,最快幾次找到前3名

  • 寶石問題(3個盒子,其中2個寶石,一個石頭;先隨機選取一個,然後剔除剩餘兩個中的寶石;第三次選擇,選擇哪個爲寶石的概率大?)

系統設計

  • RPC的設計

  • 架構設計分單系統,每秒3000訂單有效期15分鐘,50W司機進行搶單操作,如果一直沒有搶單,則訂單失效

  • 字符串hash算法的實現

  • 敏感詞過濾

  • 設計一個高可用的穩定的併發模型處理HTTP請求

其他

  • 一致性hash算法
  • 微服務概述
  • 什麼是死鎖,如何避免
  • 限流策略

算法

  • 如何原地交換兩個數

  • 島嶼問題

  • 數組中重複的數據

  • 1到n亂序排列的數據,少了其中一個,找出這個數

  • 二叉樹的右視圖

  • LRU緩存機制 (考慮併發訪問)

  • 高併發的生產者消費者模式

  • 通過中序遍歷序列和先序序列恢復二叉樹

  • 爬樓梯問題

  • 單鏈表逆序

  • 單向鏈表排序

  • string1 = 1234dsafaserewr,string2 = 23aefasdfwer,求string3 = string1 + string2

  • 二叉樹節點的公共祖先

  • 二叉樹的最大深度

  • 二叉樹的中序遍歷和層次遍歷

  • 尋找兩個升序數組的第K大值

  • 最長迴文子串長度

  • 最短迴文串

  • 合併兩個有序鏈表

  • 全排列

  • 接雨水

  • 盛最多水的容器

  • Pow(x, n)

海量數據處理問題(面試官很喜歡問)

  • hash
  • 字典樹
  • bitmap
  • 布隆過濾器
  • MapReduce
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章