大家好我是好好學習天天編程的天天
一個整天在互聯網上種菜和砍柴的程序員~
今天繼續分享2020年騰訊面試真題
2020年騰訊面試真題 一面-2020/3/19
- 自我介紹,爲什麼轉行?
- 講一下項目
- 怎麼優化項目?
- 網絡字節序大端小端怎麼測?
解答:【百度筆試題】簡述大小端字節序的概念並寫一個小程序檢測當前機器的大小端字節序- 寫題斐波那契序列、鏈表合併,反轉
- new低層實現
- 多態怎麼實現
- mss講一下
- 應用層傳文件流程
- 100字節的文件能否一次性接收
- gdb怎麼用?怎麼設置循環斷點?
2020年騰訊面試真題 二面-2020/3/17
- shared_ptr, unique-ptr的區別
- 死鎖的必要條件和解決方法
- TCP,UDP的區別
- TCP如何保證可靠
- pytorch的架構、類和C++接口的封裝,語言之間的調用
- 多機多卡訓練如何更新參數
- 算法題:給定一個很長的有序數組,和另一個無序數組,將無序數組插入有序數組中,需要保證結果仍然有序。
2020年騰訊面試真題 三面-2020/3/17
- 有沒有學習過計算機的一些基礎課程,比如網絡、操作系統、數據庫?
- 述下你理解的TCP與UDP協議有什麼差別?
- 什麼場景下比較適合UDP協議?
- TCP怎麼樣做流量控制?
- TCP斷開連接會有4次揮手的過程,4次揮手中有個狀態是time_wait?你瞭解過嗎?
- TCP斷開連接一定要4次揮手嗎?接收端fin包和確認應答能不能一起發生?
- http協議中的post和get的區別
- http的狀態碼345開頭的狀態碼分別代表什麼?
- 有了解過https協議嗎?
- htpps用什麼加密?
- 哈希表解決衝突的方式?
- 棧和隊列這兩種數據結構分別有什麼作用?
- 快速排序整體的流程是怎麼樣的?
- 快速排序時間整體的複雜度是多少?最差情況是多少?
- 有沒有聽說過跳躍表這種數據結構?
- 有沒有了解過紅黑樹?
- 紅黑樹數據查找的時間平均複雜度?
- 紅黑樹和二叉搜索樹主要的區別在哪裏?
- 數據庫方面有沒有使用過?
- 在操作系統裏面一個進程可能會出於什麼狀態?
- 進程間有什麼通訊方式?
- 有沒有接觸過linux下面的網絡編程?
- 你瞭解的進程和線程有什麼區別?
- linux下什麼命令可以查看所有進程?
- 描敘下常用的linux命令
- 在linux系統下使用gcc編譯c++,若程序跑掛了怎麼找到程序裏面的問題?
- 有沒有辦法把出錯的現場保留下來,然後事後去定位問題?
- 有沒有使用過gdb調試器,如果程序跑掛了怎麼去查看?
- 編寫一個類的時候編譯器會默認爲我們生成什麼函數?
- 複製構造函數和重載操作符有什麼不一樣?
- 你知道虛函數表有什麼作用嗎?
- 給你一個長度爲N的無序數組,然後找出裏面最大的K個數
- 爬樓梯問題,你可以一次爬1層或2層,如果有n層樓梯,一共有點多少種解法?
- 跳臺階循環計算的方法的時間複雜度和空間複雜度
2020年騰訊面試真題 四面-2020/3/17來源:牛客
- 自我介紹
- 繼承和封裝的區別
- 介紹項目,有什麼困難
- 智能指針
- 負載均衡
- 手撕駝峯序列,寫一種排序,選了快排
2020年騰訊面試真題 五面-2020/3/17
- 項目中的服務器有幾層,怎麼處理網絡延遲、異常情況
- 怎麼實現線程池
- 瞭解設計模式嗎
- 簡單說一下單例模式、線程安全
- 對棧的理解
- 數據庫瞭解嗎
- 刪除鏈表倒數第n個節點,n保證有效
- 詞頻統計、排序
- 以後的職業規劃
- STL是啥
- 講一下做的比賽
2020年騰訊面試真題 六面-2020/3/24
- cpp三大特點(封裝繼承多態)
- 虛函數 動態鏈接
- 指針和引用的區別
- union/class/struct異同
- 深拷貝淺拷貝區別
- 虛擬內存
- new的內存分配
- static
- 排序的時間複雜度
- 進程和線程
- 紅黑樹
- STL
2020年騰訊面試真題 七面-2020/3/15
- 引用和指針的區別?
- c++的緩衝都有什麼實現方法?
- 你是否遇到過c++中的內存泄露問題?怎麼解決?
- 除了開闢堆空間沒有釋放導致內存泄露還有沒有其他的可能性?
- 說一下靜態綁定和動態綁定
- c#和c++在使用上你都瞭解到了哪些不同之處?
2020年騰訊面試真題 八面-2020/3/21
- 算法題:如果一個處理器同時只能處理一個進程,現給出每個進程的時間戳,問最少需要幾個處理器才能全部處理完畢?
- 算法題:如果進程很多呢?但是時間範圍很小呢?比如一天只有2424個小時。
- 算法題:滑動窗口的最大值問題。
2020年騰訊面試真題 九面-2020/3/13
- 你對多線程開發有經驗嗎?
- TCP協議有可能會有一個問題,你在那個大作業裏怎麼判斷TCP傳輸過來的數據消息是完整的?
- 那你怎麼保證那個消息發一次你都接到了呢?因爲其實比如消息很長,那你怎麼保證那個消息沒斷呢?
- 那你搞ACM的話應該主要是在Linux下寫代碼的吧?
- git用過嗎?
- 你平時寫代碼寫c++比較多還是寫c比較多,其實都無所謂對吧
- 那對於數據庫有了解嗎?瞭解多少
- 那你搭OJ的時候會有很多問題,第一個問題就是代碼隔離怎麼做,你也不能保證用戶提交的代碼會很安全,我萬一寫一個rm -rf之類的呢?
- 然後那OJ的話會有一個任務隊列,你不可能用戶交的時候就有多餘資源,那這個隊列你怎麼維護的?
- 那用redis的哪一塊去做的?是push pub還是hub sub之類的
- 那你用redis會有很多問題,那你數據庫如果掛了,你怎麼保證等待的任務會執行完呢?
- 來問點c++的吧,我想實現一個c++的模板函數,他會根據輸入的類型不一樣做不同的事情。當他輸入的是整數的時候,要返回的是他乘2,如果輸入的是浮點數,要返回他乘3,具體上來講怎麼實現?
- 那其實你說判斷是if else對吧。那如果用if else的話模板展開會全部展開,我剛剛舉的例子你這麼做是沒有問題的,但如果模板函數這個T是繼承自某一個類的話執行某個函數,繼承自另一個類的話執行另一個函數。那如果直接if
else的話,不同分支都展開,那邊分支是編譯不過去的。這種情況怎麼辦?- 你瞭解python嗎?
- 那你寫沒寫過c++的比較大的東西?
- QT的話你當時是用的QtCreator+qMake對吧
- 你瞭解qt的事件循環是怎麼做的嗎?
- 就是signal fault是吧,那這也一個比較有意思的地方,他其實是鏈接兩個對象的,一個對象有一個信號以後另一個對象進行處理,這裏面其實有一個問題就是,他析構的時候會怎麼做?比如說A和B兩個對象,那析構的時候是怎麼把這個鏈接給拆開,還是他就沒有拆開?
2020年騰訊面試真題 十面-2020/3/13
- 手撕代碼:既然你c++和java都會 那你用c++撕一個memcopy吧
- 如果memcopy的倆字符串內存存在重疊怎麼辦
- arraylist和Linkedlist的區別和優劣
- 問GC,對象循環引用的垃圾回收
- 講一講java中堆,棧,方法區的區別
- 手撕代碼,這個我覺得有點麻煩,要求是完整的寫一個大文件的拷貝
- 數據庫索引的優缺點
- 進程間的通信
- 輸入一個網址會發生的事情
- 如何應對數據存儲“讀多寫少”的問題
上一篇:2020年騰訊C++面試題和答案持續更新中-內附視頻講解(11)
領取更多學習資料:學習資料