互聯網公司后台崗位面試經


  金三銀四季,人心躁動,或為尋求新生,或為追逐非凡。作為一個技術從業者,往往容易把自己局限在某一狹小的圈子,你很認真的做一些事情,也的確從中得到了一些收獲,但是,倘若你敢於突破圈子,去接觸了解外面的世界,你或許會遭受“沖擊”,得到意想不到的收獲。從2000年前的pc時代,到互聯網,移動互聯網,再到如今的雲計算、人工智能、大數據乃至區塊鏈,你不難發現,技術的演進已經變得愈發快速,未來的世界將會怎樣,真是難以預測!但可以預知的是,未來的5-10年,雲計算將做為類似電信運營商這樣的基礎設施,帶動傳統行業更新升級以及包括人工智能、大數據、區塊鏈這樣的技術的發展。而我們需要做的是,打破傳統的束縛,時刻關注技術趨勢和行業動態,適時合理做出自己的判斷和選擇。這個世界,已經不是單純靠努力就能過得體面的時代了,也已經不是一件事情可以做一輩子的時代了,我想表達的就是選擇比努力可能更重要,至於怎么選擇,就需要你保持與時俱進的態度,有足夠系統的認知和判斷力。

  下面總結分享下最近面試互聯網公司的一些題目,主要針對后台c/c++開發方向:

首先先做下分類,主要可以分為linux基礎、網絡知識、語言基礎、數據庫、宏觀認識幾個部分,下面逐一列出,希望對求職者有幫助:

一、linux基礎

1、linux進程間通信方式有哪些?各有什么特點?

2、linxu線程同步方式有哪些?

3、進程與線程有何區別?

4、fork一個進程,子進程會繼承父進程哪些東西?

5、如何查看進程打開了哪些文件?如何查看進程使用了哪些共享內存?

6、gdb如何調試一個正在運行的程序?gdb命令有哪些?

7、gdb實現原理是怎樣的?

8、gdb調試一個core文件,bt發現堆棧信息都是????,可能是什么原因導致?應該怎么排查?

9、一個程序啟動運行的過程是怎樣的?

10、編譯一個程序,都經過了哪些環節?

11、一個程序在內存中的占用空間分布是怎樣的?

12、共享內存內核是怎么實現的?

13、怎么查看一個程序鏈接了哪些動態庫?怎么查看一個動態庫包含哪些符號?怎么看是否未定義?

14、磁盤有哪些調度算法?

15、一個程序存在性能問題,如何定位它?

16、iostat 工具展示信息中util對應值含義是什么?

17、如何評判一個磁盤的好壞?

18、一般什么時候會使用到tcpdump,怎么使用?

19、epoll與select有什么區別?epoll有哪些觸發模式?什么場景會使用ET模式?

20、epoll在內核是怎么實現的,使用了什么數據結構?

21、什么是零拷貝?

22、mqtt協議有哪幾種發布服務質量?

二、網絡知識

1、tcp三次握手四次揮手過程是怎樣,請畫出來

2、tcp斷開連接時為什么要有time_wait狀態?

3、tcp與udp有何區別?

4、tcp/ip內核協議棧有了解嗎?

5、tcp協議如何保證數據可靠傳輸?

6、寫出建立一個tcp連接進行數據交互時,客戶端、服務端分別都調用了哪些接口?

7、如果tcp服務端只listen不accept,三次握手能成功嗎?

8、tcp有個問題叫“黏包”,有了解嗎?

9、recv函數返回0,-1,大於0分別代表什么?

10、tcp滑動窗口和擁塞控制了解嗎?

11、libuv內部大概是怎么實現的?利用了什么機制實現異步?

12、有了解哪些服務器並發處理模型?什么是leader-follow模型?

13、怎么保證一個發送數據可靠到達對端?

14、如果一個報文發出去了,對端接收不到,要怎么去定位排查?

15、如果一個服務端目前支持n個並發連接,如果只從服務端程序優化角度去提高支持並發數,有什么思路?

16、nginx和apache的區別是怎樣的?nginx怎么處理驚群效應?nginx負載均衡有哪幾種方式?nginx源碼有哪幾個模塊?

17、如何通過tcp去傳輸文件?如何實現斷點續傳?

18、如果服務器宕機或進程掛掉了,客戶端連接會怎樣?

19、已經建立好的tcp連接,怎么去檢測它是否存在異常?如果客戶端發現異常將連接斷開后,怎么觸發重新建立連接?

20、訪問www.baidu.com,都經過了哪些過程?

21、什么是泛域名?

三、語言基礎

1、實現一個mem_cpy函數

2、用c寫出快速排序算法

3、寫一個函數判斷機器是大端還是小端

4、volatile關鍵字作用是什么

5、一個帶static函數有什么特點

6、extern C是什么意思

7、printf是怎么支持變參輸入的?printf("%d")會輸出什么

8、指針運算、內存對齊、聯合體

9、c和c++各有什么特點

10、什么是多態、重載函數?

11、虛函數如何實現?

12、給一個類結構,寫出其構造函數、析構函數、拷貝構造函數

13、go語言有什么特點?協程是怎么實現的?相比較線程有什么優點?

14、python、lua、shell、php等熟悉嗎

四、數據庫

1、sqlite、mysql、mongodb、redis、memcache各有什么特點?

2、數據庫優化手段有哪些?

3、分析一個sql查詢語句會經過哪些步驟?

4、數據庫引擎至上而下大概是什么樣的?

5、數據庫如何保障ACID

6、mysql和redis都有緩存,分別都是維護什么樣的結構?

7、設計微信朋友圈對應的數據庫表結構

8、數據庫索引怎么實現,鎖特點

五、宏觀認識

1、什么是雲計算?

2、雲計算分為哪幾個部分?paas是什么、saas又是什么,舉一個實際的例子

3、談談你對docker的認識?

4、什么是區塊鏈?

5、如果讓你來設計一款用戶量很大的應用,你會怎么設計框架?

6、未來三年,你的規划是怎樣的,或者最想要的是什么?

7、為什么想跳槽?

8、轉型互聯網,你怎么看待這個選擇?

9、如何保障一個金融系統的可靠性?

10、分布式系統了解多少?什么是微服務?

以上大體包含了最近面試遇到的一些問題,還有一些忘記了的以及不好描述的(比如算法、邏輯題),僅供參考,希望對大家有幫助!


免責聲明!

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



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