山東標梵來聊騰訊C 後台開發實習崗位一 二面

2021-10-21 18:39:04 字數 1806 閱讀 2644

下面的面經,只有點評:後面的內容是我加上的,其餘內容都是投稿的小夥伴原內容。

(一面30min)

const、static 說一下區別和特點;

智慧型指標都用過哪些,聊一下;

c++ 記憶體管理有那幾個區,分別說下特點;

聊一下對記憶體洩漏的看法,如何避免

二叉樹的三種遍歷方式(先序、中序、後序); 

osi七層協議和五層協議是哪幾層?分別有哪些協議協議?

http 和 https區別?

三次握手、四次揮手;為什麼要三次握手、四次揮手?

tcp是如何保持可靠性的?

聊聊幾種 i/o模型。

epoll了解不?聊聊epoll/poll/select區別

檔案許可權怎麼看

執行緒同步有幾種方式

除去實驗室專案,我做了個多執行緒的web伺服器,就是遊雙老師那本《linux 高效能伺服器程式設計》

你的專案是怎麼解決高併發問題的?

遇到哪些問題,怎麼解決的。

「點評:」這個問題需要寫好,基本在面試過程中都會針對你做的專案這麼詢問

問了我一些實驗室專案,讓我好好準備一下二面會繼續問。

二面難度高一點,個人感覺基礎知識問的比較難,我覺得大家需要準備好面經八股文,一定不要抱有僥倖心理

結構體內存對齊聊一下;

虛函式表的原理聊一下;

深拷貝與淺拷貝;

析構函式或者建構函式能定義為虛函式嗎?(這個完全不知道,然後告訴了我答案)

堆快一點還是棧快一點?(這個之前位元組也遇到過)

棧快一點。

因為作業系統會在底層對棧提供支援,會分配專門的暫存器存放棧的位址,棧的入棧出棧操作也十分簡單,並且有專門的指令執行,所以棧的效率比較高也比較快。

而堆的操作是由c/c++函式庫提供的,在分配堆記憶體的時候需要一定的演算法尋找合適大小的記憶體。並且獲取堆的內容需要「兩次訪問」,第一次訪問指標,第二次根據指標儲存的位址訪問記憶體,因此堆比較慢

(我只會增刪改查,問的我都不會)

知不知道 mysql、redis;

我說不是很懂,後面的就沒問了。

點評」:自己要是不懂資料庫,就說不是很懂,面試官不會為難你的,他既然撈了你的簡歷,肯定是覺得你和他們團隊有契合的地方。切記不要強行說自己了解。

路由器在哪一層?

tcp/udp 聊一下區別和特點 (第二次問了)

ipv4、ipv6了解不?

你的專案為什麼用多執行緒而不是多程序?

做過壓力測試沒有?webbench原理是什麼?

webbench實現的核心原理:父程序fork若干個子程序,每個子程序在使用者要求時間或缺省的時間內對目標web迴圈發出實際訪問請求,父子程序通過管道進行通訊,子程序通過管道寫端向父程序傳遞在若干次請求訪問完畢後記錄到的總資訊,父程序通過管道讀端讀取子程序發來的相關資訊,子程序在時間到後結束,父程序在所有子程序退出後統計並給使用者顯示最後的測試結果,然後退出。

「點評」:做專案盡可能要去壓力測試,伺服器一般是使用webbench進行壓力測試,**也就幾百行,建議看看。雖然專案大都是玩具,但是你做了壓力測試會顯得更加專業。

http是如何請求和響應報文的,get/post介紹一下;

簡單說一下 et/lt、proctor/reactor;

研究生實驗室做了哪些專案?聊一下(問了很久,這個參考價值不高)

山東標梵互動講解App開發之基礎頁面搭建

搭建客戶端基礎頁面 引入資源 跟目錄建立assets,pubspec.yaml中引入資源 assets assets tabs 資源在阿里的confont中搜尋。建立tabspage import package flutter material.dart import package flutte...