第一份實習,拿到 offer 才敢寫面經(jīng)系列...
面試經(jīng)驗總的來說:
- 心態(tài)一定要好,多和面試官交流,不要沉默,實在不會大方承認
- 簡歷上的項目一定要熟,項目用到的東西也要熟,用到 redis 必問
- 面試官喜歡問為什么,多查查,遇到了就能裝b
- 算法題需要億點運氣
一面(3.22)55min
面試官是個小姐姐,nice
自我介紹
-
扒項目
- 主要工作,遇到的困難
- 一些細節(jié)問題,改進方案
-
go 垃圾回收
- 不太熟,大概描述了一下,提了一嘴 Python(簡歷上寫了熟悉 Python),小姐姐說沒關系,說下 Python 是怎么做的
hashmap(說了 go 的 map 和 redis 的 hash 結構)
redis rehash 過程
rehash 過程中添加數(shù)據(jù),查詢數(shù)據(jù)怎么辦?(就是問漸進式 rehash,剛好沒看到,瞎猜了半天)
hash 沖突用的什么方法解決的?查詢時間?最壞時間?
-
你說鏈地址法沖突到一條鏈上會退化成 O(n),它不好為什么要用?為什么不用其他的?
- 沒太明白她的意思,我只是說最壞情況可沒說它不好。。然后只能說它們各有優(yōu)缺點吧
- 應該再說一下鏈地址法的主要優(yōu)勢的
一道沒見過的算法題
給出一個分子式,比如:HMg2(H2ON3)3N2,計算這個分子式中每個原子出現(xiàn)了多少次,輸出一個map,比如上面的分子式中:map[string]int {"H": 7, "Mg": 2,"O": 3, ...}
- 都以大寫字母開頭,后面跟 0 個或者 1 個小寫字母,比如 Mg, H
- 單個原子后面跟 0 個或者 1 個數(shù)字表示它出現(xiàn)的次數(shù),比如 Mg2 表示 Mg 出現(xiàn) 2 次,數(shù)字范圍 2-9
- 分子式中可能有括號,括號后面可能跟 0 個或者 1 個數(shù)字表示整個括號內的原子出現(xiàn)的次數(shù),比如 (N3Ag)2 表示 N出現(xiàn) 6 次,Ag 出現(xiàn) 2 次 4. 括號可以嵌套
- 輸入是合法的
上來就遇到這么長的題讓我很慌,加上之前 redis 被問到不會,這里感覺都要停止思考了。。看了半天說想辦法從后往前把數(shù)字乘進去去掉括號再處理,問她思路有沒有問題,得到肯定回答才松了一口氣,然后說了下具體方法,理清之后面試官把括號去掉了,然后說時間不夠了寫下簡化版代碼吧
- 反問
算法題寫了有二三十分鐘,感覺要涼了,沒想到結束時面試官說先別走啊,我去喊一下二面面試官,瞬間復活
二面(3.22)1h
逐漸有狀態(tài)了,二面還算輕松,全程在線,當時感覺過挺快,回頭一聽才發(fā)現(xiàn)問了這么多問題
gmp
協(xié)程的優(yōu)勢
進程線程區(qū)別
進程地址空間有哪些劃分
進程間通信
共享內存是怎么回事?映射到實際物理內存的虛擬地址在地址空間的哪一部分(我猜在堆區(qū))
虛擬內存
頁面置換算法(說了局部算法和全局算法)
LRU 實現(xiàn)思路
mysql 引擎,它們的區(qū)別
innodb 輔助索引為什么存主鍵 id,回表不是要浪費時間?
b+ 樹索引優(yōu)勢
acid
隔離級別,可重讀是怎么實現(xiàn)的?幻讀是怎么回事?間隙鎖知道不?
讀寫鎖互斥關系,其他分類的鎖
我看你項目用到了 redis 具體用到了哪些數(shù)據(jù)結構?(string,hash,zset)
zset 實現(xiàn),跳表是怎么回事?高度?時間復雜度?為什么不用 b+ 樹?
redis 是單進程還是多進程?
-
扒項目(另一個爬蟲項目)
- 代理服務的默認端口?(第一次聽說代理還有默認端口)
- 頁面解析用的什么?
- 爬蟲比較困難的場景?
- 純js渲染的頁面怎么爬?
(第一個項目)壓測怎么做的?其他一些可以優(yōu)化的點
力扣原題,舒服:力扣33. 搜索旋轉排序數(shù)組
反問
二面面試官超級 nice,各種引導,問到我不會了就說ok沒問題,全程給我信心,越面越順
晚上另一個hr小哥哥加我微信約了三面時間,之前聯(lián)系我的小姐姐不見了,唉
三面(3.25)30min
扒項目(收獲什么的)
我看你項目用了 mongodb,mongodb 存儲索引知道嗎?和 mysql 比有哪些優(yōu)勢?(回答 mongodb 并不熟,只是畢設想用用新東西,優(yōu)點就知道非結構化擴展容易,速度快)
mysql 存儲引擎
項目用到了 redis 哪些結構(zset,hash),說一說底層實現(xiàn)
-
zset 除了跳表+hash表外還有其他實現(xiàn)嗎?
- 才想起來數(shù)據(jù)量較小時會用壓縮列表實現(xiàn)
- 又問壓縮列表實現(xiàn)的主要目的,答節(jié)省內存
進程通信方式
io多路復用的幾種方法(不熟,就提了下名字)
cookie session
擁塞控制
力扣原題,舒服:力扣15. 三數(shù)之和
三面面試官應該是某個部門老大,面相和藹,問了30分鐘就結束了,有點慌,沒想到結束后10分鐘hr就發(fā)來微信約hr面了
hr面(3.29)15min
聊天,實習生都沒啥好問的
面完晚上我等不及就微信問hr結果,說沒問題,offer 在審批了,然后就是漫長的等待,中間還趕上清明假期,足足等了一周多才接到 offer,期待成為一名 ByteDancer