go面試題


 

字節

1

go channel close后讀的問題

2

Linux grep命令查找日志文件相關內容

3

B+樹結構 and 為什么

4

io多路復用,epoll和select的區別

5

計網七層協議、線程進程區別

http://blog.chinaunix.net/uid-25984886-id-3029864.html

6

線程怎么調度

https://segmentfault.com/a/1190000038564512

7

進程通信方法

https://blog.csdn.net/zhaohong_bo/article/details/89552188

8

tcp 保證可靠性

9

go slice 和 array 區別

https://www.jianshu.com/p/10d23e9ffc36

  • 如果切片的容量小於1024個元素,那么擴容的時候slicecap就翻番,乘以2;一旦元素個數超過1024個元素,增長因子就變成1.25,即每次增加原來容量的四分之一。
  • 如果擴容之后,還沒有觸及原數組的容量,那么,切片中的指針指向的位置,就還是原數組,如果擴容之后,超過了原數組的容量,那么,Go就會開辟一塊新的內存,把原來的值拷貝過來,這種情況絲毫不會影響到原數組。

10

GMP 模型

調度相關的四個基本單元是g、m、p、schedt。g是協程任務信息單元,m實際執行體,p是本地資源池和g任務池,schedt是全局資源池和任務池。這里的m對應一個os線程,所以整個執行邏輯簡單來說就是"某個os線程m不斷嘗試拿資源p並找任務g執行,沒有可執行g則睡眠,等待喚醒並重復此過程",這個執行邏輯加上sysmon系統線程的定時搶占邏輯實際上就是整個宏觀的調度邏輯了(其中穿插了很多喚醒m、system goroutine等等復雜的細節),而找協程任務g的過程占據了其中大部分。g的主要來源有本地隊列、全局隊列、其他p的本地隊列、poller(net和file),以及一些system goroutine比如timerproc、bgsweeper、gcMarkWorker、runfinq、forcegchelper等。

11

分布式緩存框架,singleflight 並發,深挖,一直挖到sync.WaitGroup 

12

 緩存擊穿 緩存雪崩 

13

 sync.WaitGroup 

14

 cookie session 

15

 設計學生成績數據庫,並寫出查詢語文成績top3的人。 url輸入全過程 。從此引出后端除了響應請求還有什么。

16

 什么是分布式系統 

17

 由上面分布式系統 引出負載均衡 

18

 負載均衡算法有哪些 

19

一致性哈希算法 深挖。一致性哈希與普通哈希的區別。

20

 GMP模型 

21

 手撕代碼 LRU 

22

 手撕代碼 生產者消費者模型 

23

 手撕代碼 反轉連表 

24

算法題:三數之和 

25

 session如何存儲 

26

 多台服務器session存儲怎么設計。

27

 除了存redis 還能怎么存(

28

 http 和 https區別 

29

 https詳細過程 

30

 get post區別。還有什么其他方法。分別說說是做什么的。 

31

 web安全問題。 

32

 設計一個短鏈接服務。如何抗住大qps, 抗大流量 。url 哈希函數怎么設計(怎么存,怎么統計qps)

 

騰訊

1

tcp和udp的特性,tcp三次握手、四次揮手

2

http2.0了解嗎?和http1.1的差距?

3

反爬了解嗎?反爬的幾項技術在項目里面怎么實現的?

4

項目部署的服務器是單機的,請問如果是大流量高並發請求服務器怎么處理?

5

數據結構:常用排序算法,快排、堆排的原理和實現。

6

算法:topK,時間復雜度

7

如果是億級數據怎么處理?

8

b樹 b+樹區別

9

tcp 可靠性,然后問十六位校驗和怎么實現的

10

TCP 粘包

11

進程 協程 線程 

12

跳表怎么實現

13

go的調度

14

go struct能不能比較?

15

go defer(for defer

16

select可以用於什么?

17

context包的用途?

18

client如何實現長連接?

19

主協程如何等其余協程完再操作

20

slice,len,cap,共享,擴容

21

map如何順序讀取?

22

實現set

23

實現消息隊列(多生產者,多消費者)

24

大文件排序

25

基本排序,哪些是穩定的

26

http get跟head

27

http 401,403

28

http keep-alive

29

http能不能一次連接多次請求,不等后端返回

30

tcp與udp區別,udp優點,適用場景

31

time-wait的作用

32

數據庫如何建索引

33

孤兒進程,僵屍進程

34

死鎖條件,如何避免

35

linux命令,查看端口占用,cpu負載,內存占用,如何發送信號給一個進程

36

git文件版本,使用順序,merge跟rebase

37

項目實現爬蟲的流程

38

爬蟲如何做的鑒權嗎?

39

怎么實現的分布式爬蟲

40

電商系統圖片多會造成帶寬過高,如何解決?

41

micro服務發現

42

mysql底層有哪幾種實現方式

43

channel底層實現

44

java nio和go 區別

45

讀寫鎖底層是怎么實現的?

46

go-micro 微服務架構怎么實現水平部署的,代碼怎么實現?

47

micro怎么用

48

怎么做服務發現的

49

mysql索引為什么要用B+樹?

50

mysql語句性能評測?

51

服務發現有哪些機制

52

raft算法是那種一致性算法

53

raft有什么特點

54

go服務部署到線上了,發現有內存泄露,該怎么處理

55

https 握手,為什么需要 非對稱加密 對稱加密

 

金山wps

1

PHP-FPM 

2

CGI 是一個 Web Server 與 CGI 程序之間進行數據傳輸的協議,保證傳遞的是標准數據 

3

PHP-CGI 是 PHP 解析器(CGI 程序) 

4

FastCGI 是用來提高 CGI 程序性能的方案/協議。FastCGI 會先啟動一個 master,解析配置文件,初始化執行環境,然后再啟動多個 worker。當請求過來時,master 會傳遞給一個 worker,然后立即可以接收下一個請求,避免重復勞動,提高效率 

5

PHP-FPM 是實現 FastCGI 的程序 

6

PHP 和 Go 對比 

7

MVC 模式 

8

MySQL 優化(索引、分表分庫) 

9

瀏覽器地址欄輸入網址整個過程 

10

TCP 三次握手和四次揮手 

11

Linux 相關(介紹了一下基本操作命令) 

12

Docker 相關 

13

Git 相關 

14

開發環境(Windows、Linux 

15

CI / CD 發布流程 

16

HTTP 長連接(HTTP 1.1 版本) 

17

騰訊音樂

18

 TCP 擁塞控制(快速恢復、快速重傳)

19

從面向連接的特性回答

20

 UDP 實現可靠連接

21

TCP 可靠連接特性回答

22

四、MySQL 數據庫

23

 MySQL 索引數據結構

24

索引為什么使用 B+ 樹

26

 為什么不使用 Hash 結構

27

like 模糊查詢 

28

范圍查詢 

29

結合事務隔離級別

30

Go 語言相關

31

 slice 和 array 區別

32

 向為 nil 的 channel 發送數據會怎么樣

33

map 取一個 key,然后修改這個值,原 map 數據的值會不會變化

34

根據 map 存儲的類型回答

35

 for 循環遍歷 slice 有什么問題

36

 Go 閉包

37

 進程、線程、協程區別

38

技術相關

39

輸入 URL 發生的整個網絡過程 

40

Redis 怎么保證數據一致性 

41

TCP 流量控制、擁塞控制 

42

TCP 半連接隊列 

43

TCP 半關閉狀態 

44

TCP TIME_WAIT 狀態 

45

內核態、用戶態 

46

Hash 實現、沖突解決、應用 

47

快速排序

48

堆排序

49

大小堆 

51

 100 枚硬幣,其中有一枚硬幣重量不一樣,用天平秤怎么快速找到這一枚硬幣

 

跟誰學

1

說一下Redis中HashMap的實現(雙table,漸進式rehash,擴容條件,縮容條件,bgsave,CopyOnWrite機制) 

2

 擴容過程中有新的請求流程

3

 Redis其他的數據結構(SDS,RAW,INTSET,ZIPLIST,SKIPLIST,QUICKLIST) 

4

 跳表的實現?

5

 Redis的定時任務怎么實現的?

6

 訂單服務過期是怎么設計的(RabbitMQ死信隊列) 

 

百度

1

數據庫問題,給你10個數據庫服務器,每個只能接500的qps,現在要實現4000qps,要怎么做?說用負載均衡,使用binlog保證10個服務器的數據一致性 

2

 如果有有讀有寫,如何實現高並發,數據庫讀寫分離 

3

對於兩個寫庫,兩個請求向分別打到兩個寫庫中,他們互相向對方同步,會不會出現不一致,

4

哈希的實現有哪幾種,如何取hashcode,沖突檢測幾種方法 

5

用過go,那么進程,協程,線程各自的優缺點 

6

 算法題 z遍歷二叉樹,循環有序數組找指定值,

7

 1.事務是怎么實現的?(undo_log,MVCC) 

8

mongodb和redis的區別

9

請你說說golang的CSP思想

10

go 內存逃逸分析(分析了棧幀,講五種例子,描述堆棧優缺點,點頭)

11

是否有逃逸分析過

12

defer recover 的問題

13

mysql 索引慢分析(線上開啟slowlog,提取慢查詢,然后仔細分析explain 中 tye字段以及extra字段,發生的具體場景及mysql是怎么做的

 

 


免責聲明!

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



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