熱氣騰騰的騰訊后臺開發(fā)面經(jīng)(總共五面)(騰訊后端開發(fā)面試題)
騰訊SNG
后臺開發(fā)工程師
大概是8月初投的簡歷,當(dāng)時沒有選事業(yè)群,第二天直接被sng撈了,抓著我一頓面試。
一周內(nèi)就面完了三次面試,接著就開始無盡的等待,整整等了三周左右,終于完成了四面和HR面。
整個過程還是比較曲折的,技術(shù)面試的難度也挺大的,不過他們部門也是Java線,所以還比較有的聊。結(jié)果目前還不知道。
一面:
1 有序數(shù)組排序,二分,復(fù)雜度
2 常見排序算法,說下快排過程,時間復(fù)雜度
3 有N個節(jié)點的滿二叉樹的高度。1 logN
4 朋友之間的點對點關(guān)系用圖維護(hù),怎么判斷兩人是否是朋友,并查集,時間復(fù)雜度,過程。沒講清楚
1. 初始化元素
2. 實現(xiàn)元素與元素間的聯(lián)合操作
3. 實現(xiàn)查找元素所在樹的根節(jié)點
4. 解決一個問題,判定兩個元素是否在同一棵樹上(兩個元素是否相互連接)
5 單元點最短路的方法,時間復(fù)雜度
6 如何實現(xiàn)關(guān)鍵字輸入提示,使用字典樹,復(fù)雜度多少,有沒有其他方案,答哈希,如果是中文呢,分詞后建立字典樹?
7 hashmap的實現(xiàn)講一下吧,講的很詳細(xì)了。講一下紅黑樹的結(jié)構(gòu),查詢性能等。
8 Java中的垃圾回收講一下,講了分代,gc算法,gc root可達(dá)性分析等
9 講一下兩個項目你都做了什么把。
10 除了代碼之外你還學(xué)習(xí)了什么技術(shù),框架。
11 死鎖是怎么產(chǎn)生的
12 線程和進(jìn)程的區(qū)別
13 進(jìn)程的通信方式
14 CPU的執(zhí)行方式
15 代碼中遇到進(jìn)程阻塞,進(jìn)程僵死,內(nèi)存泄漏等情況怎么排查。通過ps查詢狀態(tài),分析dump文件等方式排查。
16 Linux了解么,查看進(jìn)程狀態(tài)ps,查看cpu狀態(tài) top。查看占用端口的進(jìn)程號netstat grep
17 10g文件,只有2g內(nèi)存,怎么查找文件中指定的字符串出現(xiàn)位置。MapReduce分割文件處理。
他說可以用cat | grep 管道處理。
18 Linux的swap了解么,完全不懂。
19 Redis和MySQL最大的區(qū)別
20 講一下Tomcat的基本架構(gòu)和組件,以及請求的整個流程。說了一下connector和container架構(gòu)和servlet請求過程。
21 MySQL的存儲引擎,有什么區(qū)別。
22 范圍1到1000的數(shù),原本有1000個,互不重復(fù),現(xiàn)多出來1個重復(fù)的數(shù),怎么找到他,統(tǒng)計次數(shù),太慢,求和相減。
23 N個糖果,每次只能取1個到6個,不能不取,你先取,請問是否有必勝策略,怎么取。
剛開始說不太記得了,面試官提示了幾個例子,找出規(guī)律不能為7的倍數(shù),每次取到只剩7的倍數(shù)個糖果即可。
二面:
1 快排的時間復(fù)雜度,冒泡時間復(fù)雜度,快排是否穩(wěn)定,快排的過程
2 100w個數(shù),怎么找到前1000個最大的,堆排序,怎么構(gòu)造,怎么調(diào)整,時間復(fù)雜度。
3 一個矩陣,從左上角到右下角,每個位置有一個權(quán)值。可以上下左右走,到達(dá)右下角的路徑權(quán)值最小怎么走。
先說了一下dfs遞歸實現(xiàn)。面試官說要優(yōu)化。
說了一下用迪杰斯特拉的思路,說可以。
4 四輛小車,每輛車加滿油可以走一公里,問怎么能讓一輛小車走最遠(yuǎn)。說了好幾種方案,面試官引導(dǎo)我優(yōu)化了一下,但是還是不滿意,最后他說跳過。
5 hashmap的實現(xiàn),hashtable,concurrenthashmap實現(xiàn)。
6 MySQL的索引,B 樹性質(zhì)。
7 Linux的cpu 100怎么排查,top jstack,日志,gui工具
8 Linux大文件怎么查某一行的內(nèi)容。
9 Redis內(nèi)存數(shù)據(jù)庫的內(nèi)存指的是共享內(nèi)存么
10 Redis的持久化方式
11 秒殺系統(tǒng)的架構(gòu)設(shè)計
三面:
1 十億個數(shù)的集合和10w個數(shù)的集合,如何求它們的交集。
集合的數(shù)字不重復(fù)。
我講了兩次循環(huán),兩次hash,以及排序或者合并等方式。。都不對。后來面試官說是對小數(shù)組做hash,然后遍歷大數(shù)組即可。我完全想錯方向了。
2 十億和數(shù)找到前100個最大的,堆排序,怎么實現(xiàn),怎么調(diào)整。
3 TCP和UDP的區(qū)別,具體使用場景呢。
4 TCP四次揮手講一下過程,最后一次ack如果客戶端沒收到怎么辦。
5 對于socket編程,accept方法是干什么的,在三次握手中屬于第幾次,可以猜一下,為什么這么覺得。
6 Linux操作系統(tǒng)了解么,了解一點點,就沒問了。
7 對于單例模式,有什么使用場景了,講了全局id生成器,他問我分布式id生成器怎么實現(xiàn),說了zk,問我zk了解原理不,講了zab,然后就沒問啦。
8 除了單例模式,知道適配器模式怎么實現(xiàn)么,有什么用
9 回到網(wǎng)絡(luò),剛才你說到直播場景,知道直播的架構(gòu)怎么設(shè)計么,要點是什么,說了幾個不太對,他說要避免廣播風(fēng)暴,答不會。
10 Redis和MySQL有什么區(qū)別,用于什么場景。
11 問了一下最近看什么書,什么時候開始寫博客的
12 問了還有幾輪面試,他說這輪我可以過,有點小驚喜
四面:
三面過了半個多月,終于安排四面了。
1 自我介紹
2 項目,收獲
3 Linux了解哪些,基礎(chǔ)命令和知識。問我proc文件系統(tǒng)了解么,答不了解。
4 TCP和UDP的核心區(qū)別在哪,講了滑動窗口保證可靠有序傳輸,UDP不可靠。TCP需要連接而UDP不需要。
5 TCP的四次揮手,time wait狀態(tài)有什么意義。
6 說完這個他問我有什么想問他的了。
7 我問他為什么隔了這么久才面試,而且之前三面都只是初試,然后他說最近他在休假,所以就。。。害我擔(dān)心了好久。他說接下來等HR面就行了。
HR面
1 自我介紹
2 實習(xí)收獲
3 臺灣交流體驗
4 之前實習(xí)公司的情況,拿到offer了嗎,會如何選擇呢
5 排一下公司,部門,薪資和城市等因素。
6 你的優(yōu)缺點,如何改進(jìn)
7 學(xué)生時代最成功的事
8 你的預(yù)期薪資