一面
7.26 70min
個人介紹3min
針對專案提問20min
先問我哪項了解多點,我說計算機網路,然后面試官說那先問一下簡單的作業系統吧(-_-
行程執行緒協程區別
A行程可以訪問B行程的空間嗎(不能
那怎么能訪問呢(IPC
共享記憶體咋實作的(直接把物理地址映射到另一個行程的地址空間里面去
為啥共享記憶體快(省略了用戶態到內核態的開銷,追問還有嗎,回答其他的不了解了)
TCP三次握手,服務端如果不呼叫accept會咋樣(客戶端發完第三次的ack包后就認為自己建立連接,而服務端不認為
那為什么會有這種狀態不一致呢(拜占庭問題
TCP是可靠的,三次握手能解決什么問題呢,用你的觀點來說好像不是可靠的?(建立連接的確可能出現這種問題,但是客戶端第一次發包的時候,服務端認為連接不存在,回傳一個RST包,這樣客戶端就知道連接不存在了
那我換個問題,TCP雙方確立連接后正常發送資料,如果服務端突然崩了,那會咋樣(客戶端認為連接還在,服務端認為不存在,回傳RST包提醒客戶端
假設服務端行程core了,或者機器壞掉了,這兩種有區別嗎(第一種是回傳RST包,第二種不會有任何回應,客戶端會重試幾次,然后認為連接失效
RST包是誰發起(服務端
是指這個行程還是這個機器呢(應該是這臺機器吧,因為這個行程已經core掉了
那你知道這個包的協議是什么,就是它在哪一層(RST包就是TCP包吧,那不就是在傳輸層?
連接都斷了,為什么還有這個包發送呢(我回答的是Linux TCP協議堆疊可以處理這種問題,我沒有這個連接,莫名其妙接收到了這個連接的包,所以會回一個RST包
你意思說這還是一個TCP包是吧(對
面試官沉默ing,這讓我產生了懷疑,RST包不是TCP包嘛?
共識演算法了解哪些呢(paxos、raft、gossip,前面稍微連接一點
raft大概是咋樣的邏輯(更好實作更好理解,leader、follower、candidate,相比于paxos,選主和日志復制分離,模塊化,paxos的proposer和acceptor把選主和日志復制糅合在一起了
你知道它是怎么解決網路磁區的問題(腦裂的問題,一半以上的支持才會確認自己leader,好像是通過item的index來決定誰的leader程度更高,另一個就自動退化為follower
C++虛函式說一下
如何取到子類的函式地址(虛函式表其實是個陣列,對虛指標解參考,然后用中括號
MySQL索引(B樹、B+樹
為啥用B+樹(減少磁盤IO次數,區間遍歷
寫性能相比于讀性能(要差,因為要分裂和合并分支,來維持m階的特性
下面的輸出
復制代碼
|
1 2 3 4 5 6 7 8 9 10 11 12 |
|
我首先說是會報member access null類似的錯,然后面試官讓我跑一下,啪啪打臉,,
再分析一下?(想了一會,推斷說func是非虛的成員方法,所以可以直接訪問
那怎么找到func的地址,或者說這個函式是放在哪里的(代碼段
如果加上一個int a成員變數,會輸出什么?(先想了一會,開玩笑說對自己的答案不是很自信,我首先說會輸出0,然后再改口說會報錯,原因是func呼叫了成員變數,成員變數需要訪問類的物件,而c沒有new出來,所以會報錯,大概是對的
有一個無序整型陣列:[3, 7, 2, 0, -1, 9, 8 ...],長度1000w左右,要求設計一個演算法,找到陣列中位數
先說了大小堆的聯機解法,然后面試官說想要小于O(nlogn)時間復雜度的排序,對陣列元素沒要求,也不需要額外空間
這里我們的溝通出現了問題,我以為面試官是想要完全排序,然后說了桶排序什么的,但他原意是找到中位數就行,害,那就直接進入主題:快速選擇
elk、日志的難點,采集日志的行程掛了咋辦,日志rotate后咋辦(不是很會
c++記憶體模型(高位元組到低位元組整了個遍
malloc的底層實作(brk與mmap
虛擬記憶體
io復用
tcp擁塞控制
題目:二維陣列的地圖中,搜索指定字串是否存在
同力扣79,力扣79還加了限制條件,已經走過的單元格不能再走,得用visited陣列記錄
題目:給定m個字符 [a, b, c, d],字符可能重復,以及一個長度為n的字串tbcacbdata,問能否在這個字串中找到一個長度為m的連續子串,使得這個子串剛好由上面m個字符組成,順序無所謂,回傳任意滿足條件的一個子串的起始位置,未找到回傳-1,
輸入 [a, b, c, d] + tbcacbdata -> 3
輸入 [a, b, c, c] + tbcacbdata -> 1
輸入 [a, b, c, d] + abctbcdata -> 4
同力扣438
三面
這里相當于就是主管了,看得出來,面試官是個大佬,說話云淡風輕,問的東西都很深入
70min
Raft的Leader掛了咋辦
Paxos原理
科研方向,軟體定義網路是什么
實習經歷
異步佇列用的是什么(MQ),你對MQ的原理熟悉嗎(還沒深入了解,實習時間不久,先把組內架構摸清楚,還沒深入了解中間件
A與B輪流從 1000 個棋子里取棋子,規定每次最多取 7 個,最少取 1 個,誰最后取完剩下的棋子誰獲勝,A先取,有沒有必勝的策略?
剛開始算錯了,1000除以8的余數是4,,,
其實是0,后來再思考了一會,給出了答案:如果B足夠聰明,A必輸
有一個很大很大的輸入流,大到沒有存盤器可以將其存盤下來,也不知道到底有多大,而且只輸入一次,如何從這個輸入流中隨機取得 7 個記錄,
蓄水池演算法
給定一個字串 s ,找出 至多 包含 k 個不同字符的最長子串 T ,輸出子串 T 長度,
示例 1:
輸入: s = "eceba", k = 2
輸出: 3
解釋: 則 T 為 "ece",所以長度為 3,
示例 2:
輸入: s = "aa", k = 1
輸出: 2
解釋: 則 T 為 "aa",所以長度為 2
8.23 50min
阿里轉正了嗎,怎么看位元組和阿里
前面四輪技術面都問了很多了,就問你一個簡歷上的東西吧
quic為什么可以隊頭不阻塞(各流獨立blabla,答的不算特別完整
概率題:一種流行病患病概率是1%,有一種檢測驗紙,檢測的準確率是99%,我現在試紙檢測陽性了,請問我患病的概率有多大?(數學題,條件概率,貝葉斯公式
邏輯題:
- 給你一個天平,32個重量不一樣的石頭,要比較多少次才能找到最重的石頭(31次
- 基于問題1,你已經找到最重的石頭了,如何找到第二重的石頭,還需要比較嗎,還需要比較多少次?(類似于歐冠32強,畫一個冠軍的晉級路線圖,實力最強的肯定是冠軍,但亞軍不一定是實力第二強的,總之:冠軍這一路上碰到的隊伍都有可能是實力第二強的隊伍,所以五支隊伍中選出最強的,需要4次)
- 給你一個最多可稱8塊石頭的設備,可以知道總重量,32塊重量不一樣的石頭,如何找到最重的三塊石頭(沒時間思考了,隨便說了下就結束面試了
五面整體感覺就是考察我這個人聰不聰明,問一堆智力題
五面完之后就陷入了漫長的等待,期間有聯系內推人,問hr說我的面試評價不一致,還需要再討論,感覺就是進入備胎池了
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/3314.html
標籤:python
上一篇:Python基礎入門第一章
