2021.5面試總結


前言

	面試了差不多兩個月,從bat到只有一個后端的小公司都面過,對面試常問的問題做一些總結。

八股文

網絡、web服務器

  • 網絡模型
    osi七層。tcp/ip4層
  • tcp
    三揮四握及其客戶端與服務器的狀態、排查,擁塞控制,滑動窗口,報文結構,為什么可靠,粘包
  • upd
    一般和tcp做對比,需了解基礎
  • http
    http1,http1.1(和tcp keep-alive作區分),http2都需了解,https的ssl協議需了解
  • nginx
    工作模式,一些簡單配置,用途,負載均衡策略

數據庫(mysql)

  • 索引結構
    為什么使用b+tree,b+tree結構,什么時候會退化,和b tree、skiplist 比較
  • 索引
    類型,使用索引的優劣(就是空間換時間),索引的使用
  • 引擎
    一般就說說myisam與innodb異同。
  • 事務
    概念,隔離級別以及解決的問題,mvcc以及實現,redolog,undolog。分布式事務2PX 3PX
  • 日志
    binlog redolog undolog relaylog 慢日志 概念功能
  • 構架
    分庫分表,主從,讀寫分離
  • 如果問mysql優化 建議從構架設計、數據庫設計、sql三個方面說

緩存(redis)

  • 為什么單線程也高效
    數據都在內部里,io多路復用,多線程上下文切換的損耗
  • string hash list set sortset 的底層結構和場景必須清除的了解
    我之前在《redis設計實現》看 list 由linkedlist實現,后來發現之后是升級quicklist節省內存空間。hashmap和skiplist是重點。
  • redis主從過程
    9個過程,百度就有
  • cluster
    槽 ,hash一致性,大key(拆),熱key(代碼實現負載均衡)
  • 內存淘汰策略
    lru 可對比朴素lru,innodb緩沖池的lru,lfu
  • bitmap hyperloglog
  • 過期鍵刪除
    惰性 定期 結合
  • 緩存與數據庫一致性
    雙刪 延時雙刪 訂閱binlog
  • 緩存穿透雪崩擊穿
    提到布隆過濾器就要了解原理(位數組+幾個哈希函數)
  • 故障轉移
    參考raft

隊列

  • 異步 削峰 解耦
  • rabbitmq感覺沒啥好說的,kafka問就是不熟0.0

elasticsearch

  • 基礎概念
  • 單機數據寫入過程
    為何准實時
  • 多機數據讀取/寫入過程
    協調節點與哈希路由算法
  • 倒排索引
    分詞, trim dictionary,跳表,trim index,postling list,fst,bitmap

linux

  • top free 問的多點
  • epoll select poll
  • 協程 上下文切換 用戶態內核態

算法

  • 除了一線廠,其實只要了解一下幾個排序算法的實現、時間復雜度、優劣就行
  • 面一線廠肯定要刷leetcode,感覺刷個300道差不多,字節的最難

項目

  • 自己的項目一定要有通徹的了解,最好做一下總結,用到的技術不管是不是自己寫都要了解。有些場景的設計要思考為什么(沒有原因也要想個理由)

其他

  • 如果用了微信小程序就要知道auth2
  • 工作中看中什么? 無非就是平台/工資/項目/團隊
  • 關於語言 我寫php的,感覺php也沒啥好問的,一般也就垃圾回收和swoole,php7特性
  • 設計個連接池

后記

  • 我准備面試大概用了一個月不到,后面的邊面邊看。感覺面一線廠還是不夠,面了幾次一面掛,菜的離譜。感覺准備面試也是對自己的提升,對業務和技術的理解都提升了很多,比如mysql很多圍繞磁盤io,redis很多圍繞使用更少內存
  • 本來打算每次面試都更新的,后來覺得重復度很高就沒寫了
  • 就寫了寫技術面,hr面。。。我被hrbp掛過兩次,就不誤人子弟了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM