面試軟體用的位元組自己的飛書。面試官掉線了好幾次。。。
開局自我介紹。
1.首先是語言部分:
- go和java的區別
- 協程與執行緒的區別
- java的hashmap的原理
- java的介面與抽象類的區別。
- 什麼時候用抽象類,什麼時候用介面
2.計算機網路部分
- tcp與udp的區別
- tcp如何保證可靠有序
- tcp的擁塞控制
- 服務端給客戶端傳送123個報文,收到了3的ack,下一步發哪一個報文
- http每個版本的區別
- http 1.1 中流水線阻塞的原理,http2中多路複用的原理,為什麼不阻塞了(這個是真的不會。。)
- https祕鑰交換過程 對稱祕鑰被黑客擷取了咋辦(感覺問的有問題,我就回答說對稱祕鑰不可能被黑客擷取,因為對稱祕鑰是使用服務端公鑰加密過的,只能使用服務端的私鑰解密)
- https的公鑰被劫持的咋辦(ca證照)
3.作業系統部分
幾種io模型 說了同步阻塞,同步非阻塞,非同步非阻塞 同步非阻塞與io多路複用的區別?(不知道,求大佬們解答) io多路複用複用的什麼部分(猜了一個發射端快取,也就是buffer,網路程式設計這部分真的沒咋看,得加強一下。。)
4.資料庫部分
- mysql索引優化(最左原則.....) 聚簇索引與非聚簇索引 非聚簇索引怎麼查的(回表) 索引失效 redis(不會redis,問的問題忘了,面試官問了一道發現我不會,也就沒問)
5.資料結構部分
- 給定一個資料流,流裡面是一些單詞,要求使用一個資料結構統計單詞的個數(hashmap或者字典樹)
- 給定一個單向有序連結串列,要求使用一個資料結構能快速查出給定節點值(跳錶,我覺得在連結串列上建b+樹也可以)
6.演算法做題
-
使用自己的ide。
-
lc的連結串列對摺那道題。
20分鐘不到,需要自建節點,自己
-
在main函式裡例項化連結串列然後測試
這道題不難但是又臭又長。。首先要用快慢指標找到中點,然後將慢指標後面的部分翻轉得到另外半個連結串列,最後將兩個連結串列合併。
寫出來了,執行發現有錯誤。。。沒debug一會兒,面試官叫我停了,把程式碼複製給他然後就匆匆忙忙結束了。
沒有反問環節。。總體感覺表現的不是很好,很多問題說的語言不順暢,還好過了。。面試官蠻不錯的,遇到不會了就跳過,也不追究。
本文由 GOLANG ROADMAP 釋出!