當(dāng)前位置:首頁(yè) > IT技術(shù) > 編程語(yǔ)言 > 正文

【面試】騰訊 C++方向面經(jīng)
2022-02-14 14:02:33

第一篇
一面 2019/10/21 來(lái)自于比特論壇
1、講解項(xiàng)目
2、內(nèi)存申請(qǐng)除了 brk 還有什么
3、堆和棧的區(qū)別
4、多進(jìn)程的地址空間是獨(dú)立的,在操作系統(tǒng)里是怎么實(shí)現(xiàn)的
5、兩個(gè)進(jìn)程去訪問(wèn)同一個(gè)線性地址,可以嗎
6、段錯(cuò)誤,是怎么導(dǎo)致的
7、操作系統(tǒng)怎么進(jìn)行進(jìn)程的切換
8、Linux 下相關(guān)命令
9、信號(hào)機(jī)制是干什么的?信號(hào)是怎么處理的?信號(hào)處理是同步還是異步?kill 命令什么時(shí)
候返回?
10、tcp 和 udp 的區(qū)別?tcp 怎么做到有序?
11、了解 shell 和 Python 嗎?
二面 2019/10/25 來(lái)自于比特論壇
1、自我介紹
2、strlen 的遞歸實(shí)現(xiàn)
3、int rand()1-6 等概率,用這個(gè)函數(shù)實(shí)現(xiàn) int rand()1-10 等概率
4、101 個(gè)硬幣,有一個(gè)是假的,有一個(gè)天平,稱(chēng)兩次判斷出這個(gè)假硬幣輕還是重
5、程序運(yùn)行中一直進(jìn)入 if 語(yǔ)句,怎么讓它進(jìn)入 else 語(yǔ)句
6、兩個(gè)單鏈表相交了,遍歷一次找到相交結(jié)點(diǎn)
7、阻塞和非阻塞
8、socket 編程的相關(guān)接口
第二篇
一面 2019/10/9 來(lái)自于比特論壇
1、虛擬地址空間和物理內(nèi)存
2、哈希沖突的解決方案
3、編譯過(guò)程
二面 2019/10/9 來(lái)自于比特論壇

1、主要問(wèn)項(xiàng)目,他選了我第一個(gè)項(xiàng)目,HTTP 文件共享服務(wù)器
2、輸入域名后發(fā)生了什么? 3、多線程安全問(wèn)題,線程池,鎖
4、斷點(diǎn)續(xù)傳
5、這個(gè)項(xiàng)目在一臺(tái)主機(jī)上跑是沒(méi)有問(wèn)題的,那如果是多臺(tái)主機(jī),就會(huì)有問(wèn)題,怎么解決
6、然后簡(jiǎn)單講了下用 epoll 提高效率,并沒(méi)有深入了問(wèn)
7、HTTP 協(xié)議
三面 2019/10/11 來(lái)自于比特論壇
1、主要是鎖的問(wèn)題
2、線程安全的問(wèn)題
3、項(xiàng)目
4、100G 文件,多 ip 進(jìn)行排序
5、問(wèn)了能不能實(shí)習(xí),學(xué)校的課程
6、HTTPS 的實(shí)現(xiàn)
第三篇
一面 2019/10/14 來(lái)自于比特論壇
1、自我介紹
2、你對(duì)虛函數(shù)是怎么理解的?
3、詳細(xì)講 static 關(guān)鍵字吧
4、引用和指針有什么區(qū)別?
5、new 和 malloc 有什么區(qū)別?
6、知道哪些 C++11 的新特性?講一下,說(shuō)一說(shuō)右值引用的應(yīng)用場(chǎng)景?
7、C++是怎么做動(dòng)態(tài)內(nèi)存管理的?
8、說(shuō)一下 map 和 hashmap 的區(qū)別吧
9、講一下堆和棧的區(qū)別吧
10、講一下 time_wait 是發(fā)生在那一端?
11、如果很多連接都是處于 time_wait 狀態(tài),該怎么處理?
12、講一下 select 和 epoll 的區(qū)別?
13、講一下 LT 和 ET 有什么區(qū)別?
14、講一下 get 和 post 的區(qū)別?
15、http2 和 http1 的區(qū)別?
16、http 和 https 的區(qū)別?https 的優(yōu)缺點(diǎn)?
17、什么時(shí)候要使用多線程編程?
18、多線程編程里面,你怎么理解互斥鎖和自旋鎖? 19、用 mysql 嗎?
20、你認(rèn)為在搭建一個(gè) web 服務(wù)的過(guò)程中,有哪些情況會(huì)影響到 web 服務(wù)的性能? 21、怎么提升服務(wù)器的并發(fā)性能? 22、剛提到線程池,被問(wèn)線程池內(nèi)部的線程一般是多少個(gè)? 23、倘若你用了線程池,但是高峰時(shí)期流量就是太高了,服務(wù)器承受不住,你該怎么辦? 24、倘若就算這樣還是不行,怎么辦? 25、倘若你就只有一臺(tái)服務(wù)器,沒(méi)有更多的硬件資源了,怎么辦? 26、倘若你的操作無(wú)法用原子性,一個(gè)線程不斷的生產(chǎn)任務(wù),放到隊(duì)列中,另一個(gè)從隊(duì)列
中拿取請(qǐng)求,如何做到無(wú)鎖編程? 27、你平常有什么興趣愛(ài)好嗎? 28、最近有看什么技術(shù)書(shū)籍嗎? 29,你寫(xiě)的兩個(gè)項(xiàng)目,搜索引擎和在線畫(huà)圖板,是你的課程設(shè)計(jì)嗎?
30、你的 httpserver 是怎么搭建的? 31、我這邊基本問(wèn)的差不多了,你有什么要問(wèn)的嗎?
二面 2019/10/14 來(lái)自于比特論壇
1、自我介紹
2、C 與 C++的區(qū)別
3、平常有 C 和 C++混合編程嗎,如果在 C++當(dāng)中要調(diào)用 C 的函數(shù),要怎么做? 4、講講 extern 關(guān)鍵字,為什么要用?講重載的原理和使用? 5、知道覆蓋吧,講講實(shí)現(xiàn)和使用? 6、講講你知道的 C++11 新特性
7、我看你對(duì) C++動(dòng)態(tài)內(nèi)存管理有一定了解,你來(lái)談一下 C++的內(nèi)存布局吧
8、一個(gè)未初始化的全局變量存在那個(gè)區(qū)?臨時(shí)變量存在那個(gè)區(qū)? 9、new 出來(lái)的空間在哪個(gè)區(qū)、為什么已經(jīng)有了 malloc 和 free,為什么還要用
new/delete?
10、談一談數(shù)據(jù)結(jié)構(gòu),挑一種你擅長(zhǎng)的說(shuō)一下
11、你這兩個(gè)項(xiàng)目什么時(shí)候?qū)懙??你這個(gè) http 服務(wù)器的功能是什么?socket 這部分 api
你是怎么用的?
12、有沒(méi)有看過(guò)其他常用的 http 服務(wù)器?
13、有對(duì)你這個(gè)服務(wù)器進(jìn)行測(cè)試過(guò)嗎?怎么測(cè)試量級(jí)的
14、你說(shuō)熟悉多路復(fù)用模型,有沒(méi)有在項(xiàng)目中用到?
15、數(shù)據(jù)庫(kù)會(huì)嗎?
16、講講搜索引擎項(xiàng)目中的索引是怎么構(gòu)建的?
17、那你按照這樣來(lái)構(gòu)建索引,我搜的關(guān)鍵字中倘若有很多無(wú)意義詞(比如 is,a 等),怎
么設(shè)計(jì)能保證我們搜的結(jié)果能符合預(yù)期?
18、搜索引擎是否有測(cè)試過(guò)?
19、我看搜索引擎中大量使用了 vector,談一下 vector 的好處?
20、怎么 vector 規(guī)避頻繁擴(kuò)容?
21、sort 的排序是什么排序?
22、講一下 https 和 http 的區(qū)別
23、講一下 http2、0 的改進(jìn)點(diǎn)
24、搜索引擎如果要搞一個(gè)聯(lián)想功能,你覺(jué)得該怎么實(shí)現(xiàn)?
25、問(wèn)問(wèn)題吧
第四篇
一面 2019/10/22 來(lái)自于比特論壇
1、自我介紹
2、談?wù)勎覍?duì)服務(wù)器的理解
3、對(duì) reactor 與 proactor 理解
4、講講項(xiàng)目中服務(wù)器構(gòu)架
5、對(duì)同步異步的理解
6、對(duì) stl 的理解,stl 內(nèi)存分配的理解,為什么要有空間配置器?
7、stl 與面向?qū)ο笥惺裁绰?lián)系?
8、面向?qū)ο笥惺裁磧?yōu)點(diǎn)?為什么要有面向?qū)ο螅?br/> 9、進(jìn)程地址空間分布?為什么要有?如何管理?系統(tǒng)調(diào)用?
10、數(shù)據(jù)庫(kù)索引結(jié)構(gòu)?為什么要用 B+樹(shù)?
11、你有什么問(wèn)題問(wèn)我?
12、談?wù)剬?duì)數(shù)據(jù)安全的理解?加密?MD5?
二面 2019/10/22 來(lái)自于比特論壇
1、堆和棧空間
2、netstat 和 ps 兩個(gè)命令
3、進(jìn)程和線程
4、父進(jìn)程創(chuàng)建了兩個(gè)進(jìn)程,其中一個(gè)子進(jìn)程除 0 錯(cuò)誤,另外兩個(gè)進(jìn)程的情況? 5、上題進(jìn)程換成線程

6、線程棧空間給了一個(gè)超過(guò)棧內(nèi)存的變量,會(huì)發(fā)生什么? 7、進(jìn)程間通信
8、進(jìn)程和線程的優(yōu)劣,進(jìn)程和線程一般開(kāi)辟幾個(gè)? 9、http 協(xié)議,報(bào)頭,狀態(tài)
10、服務(wù)端客戶端模型和瀏覽器服務(wù)端模型做對(duì)比,分析其優(yōu)劣,安全性
11、tcp 和 udp 的對(duì)比
12、發(fā)送報(bào)文的具體函數(shù)調(diào)用?
13、主要就這些方面,考察底層原理,有的題需要說(shuō)出自己的看法
第五篇
一面 2019/10/16 來(lái)自于比特論壇
1、什么是三次揮手?為什么要三次揮手?為什么不是兩次和四次?
2、什么是四次握手?為什么要四次握手?有沒(méi)有抓包抓過(guò)四次握手?講了一下什么情況
有三次握手?
3、雙方發(fā)送 SYN,為什么要發(fā)送 SYN? 4、四次揮手里 FIN_WAIT2 狀態(tài)一直持續(xù)怎么辦?
5、問(wèn)了項(xiàng)目
6、從項(xiàng)目扯到了 epoll,講了一下 epoll 和 select 的區(qū)別,講了一下水平觸發(fā)和邊緣觸發(fā)
7、然后講了一下 strcpy 怎么實(shí)現(xiàn)的,然后 strcpy 內(nèi)部有沒(méi)有動(dòng)態(tài)內(nèi)存管理
8、知不知道雙向鏈表,快速闡述一下雙向鏈表怎么實(shí)現(xiàn)的
9、再講一下項(xiàng)目,問(wèn)到那個(gè)線程創(chuàng)建進(jìn)程,對(duì) fork 的優(yōu)化,有沒(méi)有優(yōu)化
10、都接觸過(guò)哪些開(kāi)源庫(kù)
11、平時(shí)碰到問(wèn)題是怎么解決的?
二面 2019/10/16 來(lái)自于比特論壇
1、講項(xiàng)目,懟著項(xiàng)目一直問(wèn)。你為什么知道你的服務(wù)器性能瓶頸在哪里? 2、cpu 給進(jìn)程分配哪些資源? 3、桶查找
4、怎么確定你的哈希表大??? 5、字符串哈希算法
6、文件寫(xiě)到磁盤(pán)的流程
7、內(nèi)存頁(yè)大小?磁盤(pán)塊大小? 8、職業(yè)規(guī)劃
9、創(chuàng)建一個(gè)線程占用的內(nèi)存是多少?
10、一個(gè)系統(tǒng)中能創(chuàng)建多少進(jìn)程?
11、一個(gè)進(jìn)程可以創(chuàng)建多少個(gè)線程?
第六篇
一面 2019/10/14 來(lái)自于比特論壇
1、自我介紹
2、看你簡(jiǎn)歷上有寫(xiě)智能指針,你能給我簡(jiǎn)單描述一下嗎?
3、C 文件的編譯過(guò)程?
4、鏈接有哪些鏈接方式?
5、指針數(shù)組、數(shù)組指針的 sizeof 求值分別是什么?
6、你對(duì)模板有了解嗎? 7、你了解運(yùn)行時(shí)多態(tài)的實(shí)現(xiàn)過(guò)程嗎?
8、你了解 STL 嗎?map 的底層實(shí)現(xiàn)?map 中查找一個(gè)元素的時(shí)間復(fù)雜度?hash 沖突的
解決方法?
9、排序算法
10、core 文件的調(diào)試方式?gdb 的使用方法你了解過(guò)哪些?要是你的代碼 core 掉,你一
般會(huì)怎樣調(diào)試?
11、多進(jìn)程間通信的方式?你認(rèn)為哪一種的效率最高?
12、那多線程間通信有哪些方法?線程安全問(wèn)題如何解決?如果想讓數(shù)據(jù)屬于線程私有應(yīng)
該怎樣實(shí)現(xiàn)?有了解過(guò) tls 的底層實(shí)現(xiàn)嗎?
13、TCP/UDP 可以進(jìn)行廣播嗎?UDP 可靠嗎?MTU/MSS 的大小?
14、unique_lock 和 lock_groud 的區(qū)別?我看到你的項(xiàng)目中有個(gè) bug?我看到你的項(xiàng)目
中用的 send 和 recv,怎樣設(shè)置為非阻塞?非阻塞如果沒(méi)有數(shù)據(jù)可讀返回值是什么?
15、三次握手和四次揮手?
16、有沒(méi)有了解過(guò) malloc 的底層?
17、查看服務(wù)器連接的工具?你有抓過(guò)數(shù)據(jù)包嗎?
18、你有了解過(guò)開(kāi)源的東西嗎?你有了解過(guò)協(xié)程嗎?分布式?阿帕奇?
19、算法題:K 行,每一行有無(wú)窮多的數(shù),每一行都是由大到小排列,從這 K 行中找前 N
個(gè)最大的數(shù)
20、你要問(wèn)的問(wèn)題
二面 2019/9/2 來(lái)自于比特論壇
1、自我介紹
2、主要聊項(xiàng)目
3、算法題:在無(wú)數(shù)個(gè)無(wú)序數(shù)中找到中位數(shù)
4、你問(wèn)的問(wèn)題
三面 2019/9/5 來(lái)自于比特論壇
1、問(wèn)了學(xué)校相關(guān)專(zhuān)業(yè)課
2、算法題:一個(gè)文件中有 100 億個(gè) int 數(shù)據(jù),用最短時(shí)間找到最大的 1000 個(gè) 3、進(jìn)程和線程的區(qū)別
4、線程池的實(shí)現(xiàn)方法?有什么好處?
5、vector 和 list 的區(qū)別,push_back 如何實(shí)現(xiàn)?vector 的擴(kuò)容方式?為什么擴(kuò)容有這樣
差異?
6、vector、list、map、set 有什么區(qū)別?分別的使用場(chǎng)景?
7、Linux 下進(jìn)程間通信方式?管道、共享內(nèi)存什么場(chǎng)景下會(huì)用??jī)蓚€(gè)進(jìn)程不在同一個(gè)機(jī)器
如何通信?
8、有用過(guò) socket 嗎?UDP 不可靠為啥還要存在?
9、微信聊天用的是 UDP 還是 TCP?
10、Linux 下查看網(wǎng)絡(luò)端口?
11、Linux 下查看負(fù)載情況?
12、臨時(shí)變量 int arr[]可以達(dá)到的最大大小
13、一個(gè)進(jìn)程最大能占用多大的內(nèi)存空間?
14、你考慮讀研究生嗎?你家是哪里的?
第七篇
一面 2019/9/12 來(lái)自于比特論壇
1、虛擬地址空間和物理內(nèi)存
2、哈希沖突的解決方案(開(kāi)散列,閉散列,多階哈希),一致性哈希
3、編譯過(guò)程
二面 2019/9/17 來(lái)自于比特論壇
1、主要問(wèn)項(xiàng)目,他選了我第一個(gè)項(xiàng)目,HTTP 文件共享服務(wù)器
2、輸入域名后發(fā)生了什么?
3、多線程安全問(wèn)題,線程池,鎖
4、斷點(diǎn)續(xù)傳
5、這個(gè)項(xiàng)目在一臺(tái)主機(jī)上跑是沒(méi)有問(wèn)題的,那如果是多臺(tái)主機(jī),就會(huì)有問(wèn)題,怎么解決
6、然后簡(jiǎn)單講了下用 epoll 提高效率
7、HTTP 協(xié)議
第八篇
一面 2019/9/17 來(lái)自于比特論壇
1、說(shuō)一下 HTTP 服務(wù)器
2、你寫(xiě)的是什么樣的服務(wù)器呢,是單進(jìn)程多線程還是多進(jìn)程還是線程池,講解一下
3、線程池如何實(shí)現(xiàn)的?
4、那所有線程之間有什么是共享的嗎?
5、線程之間同步和互斥問(wèn)題
6、你在寫(xiě)這個(gè)服務(wù)器的時(shí)候遇到過(guò)什么問(wèn)題嗎?怎樣處理的?
7、高并發(fā)的情況怎樣處理呢?
8、select 和 eopll? 9、說(shuō)一下搜索引擎項(xiàng)目
10、你的索引如何構(gòu)建的
11、你的正排索引和倒排索引都是在堆上建立的,進(jìn)程退出就沒(méi)有了,那有什么辦法保存
下來(lái)嗎?
12、說(shuō)一下共享內(nèi)存
13、搜索引擎項(xiàng)目用到的服務(wù)器是自己寫(xiě)的還是其他的什么
14、看過(guò)什么書(shū)?給你推薦一本書(shū)《Unix 環(huán)境高級(jí)編程》
15、玩過(guò)什么游戲,喜歡玩游戲嗎?
二面 2019/9/24 來(lái)自于比特論壇
1、我們是做游戲開(kāi)發(fā)的,之前有做過(guò)關(guān)于游戲這方面的項(xiàng)目嗎?
2、那你說(shuō)一下你的服務(wù)器
3、你這個(gè)是用了 cgi,那你是怎么實(shí)現(xiàn)的?
4、如果我不用 fork 加 exec 那怎樣去實(shí)現(xiàn)
5、你玩過(guò)王者榮耀吧,我在手機(jī)上按下一個(gè)技能會(huì)怎么樣?
6、既然你說(shuō)到了 udp,那你說(shuō),服務(wù)器是會(huì)把你按下的這個(gè)技能,所返回的 udp 這樣的
數(shù)據(jù)怎樣處理,在客戶端上
7、技能釋放之后,會(huì)在你的客戶端上顯示出來(lái),也會(huì)在其他玩家那里顯示,我服務(wù)器要
怎樣緩存?
8、你說(shuō)的是有局部緩存還有一些全局的緩存,那么它們分別都是怎樣處理的呢?
9、你玩過(guò) mmo 的游戲嗎?
10、那你知道,假如說(shuō)我現(xiàn)在有很多個(gè)人大約是幾千人幾萬(wàn)人在一起玩,我的服務(wù)器會(huì)怎
樣處理?
11、你說(shuō)的這種,并不是我的意思,假如說(shuō),現(xiàn)在有一張地圖,我有幾萬(wàn)人同時(shí)連接進(jìn)
來(lái),那你說(shuō)我的服務(wù)器或者客戶端怎樣處理?
12、那我再問(wèn)你,假如我現(xiàn)在所有的人都聚集到了一起,在一個(gè)主城里,那此時(shí)我又改怎
樣處理?
13、那我再問(wèn)你一些編程中的知識(shí)吧
14、析構(gòu)函數(shù)什么時(shí)候要用 virtual
15、Dynamic_cast 用過(guò)嗎
16、那我問(wèn)你一個(gè)很深入的問(wèn)題,怎樣實(shí)現(xiàn)一個(gè) dynamic_cast,你就只說(shuō)是指針的情況
吧,答不出來(lái)也沒(méi)關(guān)系
17、我看你學(xué)過(guò)很多數(shù)據(jù)結(jié)構(gòu),那你知道 map 和 unordered_map 嗎?
18、紅黑樹(shù)和哈希說(shuō)一下
19、紅黑樹(shù)和哈希他們?cè)鰟h查改的時(shí)間復(fù)雜度
20、假如說(shuō),我現(xiàn)在有很多數(shù)據(jù),是只讀的,我要把他們存起來(lái),那你有沒(méi)有什么辦法可
以改進(jìn)一下這個(gè) map 和 unordered_map,效率更高一點(diǎn)
21、Perfect hashing
22、那再比如說(shuō),我現(xiàn)在有很多只讀的字符串,再讓你改進(jìn)一下你有辦法嗎
23、你聽(tīng)說(shuō)過(guò) tire 嗎
第九篇
一面 2019/10/8 來(lái)自于比特論壇
1、純虛函數(shù)是什么
2、多態(tài)是什么
3、new 和 malloc 區(qū)別
4、static 的理解
5、指針和引用的區(qū)別
6、左值引用和右值引用
7、hashmap 和 map 的區(qū)別
8、list 和 vector 的區(qū)別
9、三次握手和為什么是三次
10、HTTP2 和 1 的區(qū)別
11、服務(wù)端和客戶端的 socket 流程
12、TCP 滑動(dòng)窗口
13、自旋鎖和互斥鎖,分別應(yīng)用于什么場(chǎng)景
14、線程數(shù)量有什么講究
二面 2019/10/15 來(lái)自于比特論壇
1、HTTPS 和 HTTP 的區(qū)別
2、設(shè)計(jì)一個(gè)帶論文查重的方式
3、設(shè)計(jì)一個(gè)類(lèi)似 QQ 同步助手的云同步通訊錄
4、設(shè)計(jì)一個(gè)數(shù)據(jù)庫(kù)存儲(chǔ)視頻
5、設(shè)計(jì) QQ 后面通訊的邏輯
6、設(shè)計(jì)一個(gè) vector
第十篇
一面 2019/6/5 來(lái)自于比特論壇
1、什么是三次揮手?為什么要三次揮手?為什么不是兩次和四次?
2、什么是四次握手?為什么要四次握手?有沒(méi)有抓包抓過(guò)四次握手?講了一下什么情況
有三次握手?
3、雙方發(fā)送 SYN,為什么要發(fā)送 SYN? 4、四次揮手里 FIN_WAIT2 狀態(tài)一直持續(xù)怎么辦?
5、問(wèn)了項(xiàng)目
6、從項(xiàng)目扯到了 epoll,講了一下 epoll 和 select 的區(qū)別,講了一下水平觸發(fā)和邊緣觸發(fā)
7、然后講了一下 strcpy 怎么實(shí)現(xiàn)的,然后 strcpy 內(nèi)部有沒(méi)有動(dòng)態(tài)內(nèi)存管理
8、知不知道雙向鏈表,快速闡述一下雙向鏈表怎么實(shí)現(xiàn)的
9、再講一下項(xiàng)目,問(wèn)到那個(gè)線程創(chuàng)建進(jìn)程,對(duì) fork 的優(yōu)化,有沒(méi)有優(yōu)化
10、都接觸過(guò)哪些開(kāi)源庫(kù)
11、平時(shí)碰到問(wèn)題是怎么解決的?
二面 2019/6/11 來(lái)自于比特論壇
1、講項(xiàng)目,懟著項(xiàng)目一直問(wèn)。你為什么知道你的服務(wù)器性能瓶頸在哪里? 2、cpu 給進(jìn)程分配哪些資源? 3、桶查找
4、怎么確定你的哈希表大?。?5、字符串哈希算法
6、文件寫(xiě)到磁盤(pán)的流程
7、內(nèi)存頁(yè)大???磁盤(pán)塊大小? 8、職業(yè)規(guī)劃
9、創(chuàng)建一個(gè)線程占用的內(nèi)存是多少?
10、一個(gè)系統(tǒng)中能創(chuàng)建多少進(jìn)程?
11、一個(gè)進(jìn)程可以創(chuàng)建多少個(gè)線程?

求職必備刷題官網(wǎng):https://github.com/bennyrhys/interview
【更多互聯(lián)網(wǎng)公司筆試面試真題請(qǐng)關(guān)注“讓我遇見(jiàn)相似的靈魂”公眾號(hào)】

【面試】騰訊 C++方向面經(jīng)_搜索引擎

本文摘自 :https://blog.51cto.com/u

開(kāi)通會(huì)員,享受整站包年服務(wù)立即開(kāi)通 >