騰訊Java后臺(tái)面試經(jīng)驗(yàn)總結(jié)
下午,突然收到騰訊的電話面試,心想:“不是3、4月份投的簡(jiǎn)歷嗎,,,現(xiàn)在我還有機(jī)會(huì)被撈,管他,面了再說(shuō)”
由于騰訊本身不是Java的主場(chǎng),而且本身是一面,問(wèn)的都是基礎(chǔ),所以面試基本沒(méi)有問(wèn)到Java、JVM等詳細(xì)的知識(shí)。面試大體問(wèn)題如下:
計(jì)算機(jī)網(wǎng)絡(luò)
-
講下七層協(xié)議:講得還ok,大體說(shuō)了下每層的功能等
-
三次握手、四次揮手:由于之前認(rèn)真看過(guò),所以講得也算流暢,詳細(xì)說(shuō)了下過(guò)程
面試官問(wèn):“四次揮手最后B給A請(qǐng)求的等待時(shí)間(是什么時(shí)間)”
我:“emmmmmmmm,不知道”
后查詢發(fā)現(xiàn)還是自己掌握得不好,其實(shí)答案也很簡(jiǎn)單,如下:TCP關(guān)閉連接用四次握手來(lái)實(shí)現(xiàn),即A--->B Fin, B--->A ACK, B--->A Fin, A--->B ACK,為什么要這樣?
A--->B Fin, B--->A ACK ,A屬于主動(dòng)關(guān)閉方,收到B的ACK后,A到B的方向連接關(guān)閉,即half shutown ,
這時(shí)A不能再發(fā)送數(shù)據(jù)了。這種狀態(tài)下B還是可以單向發(fā)送數(shù)據(jù)的,B的數(shù)據(jù)發(fā)送完畢,也做關(guān)閉動(dòng)作了:B--->A Fin
A--->B ACKB收到ACK,關(guān)閉連接。但是A無(wú)法知道ACK是否已經(jīng)到達(dá)B,于是開始等待?
等待什么呢?假如ACK沒(méi)有到達(dá)B,B會(huì)為FIN這個(gè)消息超時(shí)重傳 timeout retransmit ,
那如果A等待時(shí)間足夠,又再次收到FIN消息,說(shuō)明剛才A返回的ACK沒(méi)有到達(dá)B,于是再發(fā)送ACK,
直到在足夠的時(shí)間內(nèi)沒(méi)有收到FIN,說(shuō)明ACK成功到達(dá)。
這個(gè)等待時(shí)間至少是:B的timeout + FIN的傳輸時(shí)間,為了保證可靠,采用更加保守的等待時(shí)間2MSL。按照《趣談網(wǎng)絡(luò)協(xié)議》的形象說(shuō)法:
斷開的時(shí)候,我們可以看到,當(dāng) A 說(shuō)“不玩了”,就進(jìn)入 FIN_WAIT_1 的狀態(tài),B 收到“A 不玩”的消息后,發(fā)送知道了,就進(jìn)入 CLOSE_WAIT 的狀態(tài)。
A 收到“B 說(shuō)知道了”,就進(jìn)入 FIN_WAIT_2 的狀態(tài),如果這個(gè)時(shí)候 B 直接跑路,則 A 將永遠(yuǎn)在這個(gè)狀態(tài)。TCP 協(xié)議里面并沒(méi)有對(duì)這個(gè)狀態(tài)的處理,但是 Linux 有,可以調(diào)整 tcp_fin_timeout 這個(gè)參數(shù),設(shè)置一個(gè)超時(shí)時(shí)間。
如果 B 沒(méi)有跑路,發(fā)送了“B 也不玩了”的請(qǐng)求到達(dá) A 時(shí),A 發(fā)送“知道 B 也不玩了”的 ACK 后,從FIN_WAIT_2 狀態(tài)結(jié)束,按說(shuō) A 可以跑路了,但是最后的這個(gè) ACK 萬(wàn)一 B 收不到呢?則 B 會(huì)重新發(fā)一個(gè)“B 不玩了”,這個(gè)時(shí)候 A 已經(jīng)跑路了的話,B 就再也收不到 ACK 了,因而 TCP 協(xié)議要求 A 最后等待一段時(shí)間 TIME_WAIT,這個(gè)時(shí)間要足夠長(zhǎng),長(zhǎng)到如果 B 沒(méi)收到 ACK 的話,“B 說(shuō)不玩了”會(huì)重發(fā)的,A 會(huì)重新發(fā)一個(gè) ACK 并且足夠時(shí)間到達(dá) B。 -
https(大概說(shuō)了下,但自我感覺(jué)講得不好)
-
慢啟動(dòng)算法、滑動(dòng)窗口(之前看過(guò),不過(guò)由于沒(méi)認(rèn)真看,且當(dāng)時(shí)腦子一短路,沒(méi)想起來(lái)是什么,回答面試官“忘了”的時(shí)候,我就知道自己涼了)
https://github.com/Hpsyche/note/blob/master/計(jì)算機(jī)網(wǎng)絡(luò)/滑動(dòng)窗口.md -
一個(gè)請(qǐng)求報(bào)文包含了什么信息
(請(qǐng)求方式(Get/Post) url 協(xié)議名 請(qǐng)求頭部 空行 請(qǐng)求體) -
響應(yīng)碼狀態(tài)有什么?
200 204 206 301 302 303 304 400 404 500 501 503
415(不支持的媒體類型,說(shuō)錯(cuò)成了“514”,不過(guò)面試官?zèng)]發(fā)現(xiàn),或是沒(méi)有拆穿我)
操作系統(tǒng)
- 線程及進(jìn)程區(qū)別:講得還ok
- 查看CPU狀態(tài)命令:不懂
- top命令:真不懂(一開始還聽(tīng)成了tail)
- 管道命令,只說(shuō)了兩個(gè)
查看進(jìn)程:ps -ef|grep
查看端口占用情況:netstat -anp |grep 3306* - linux查看配置網(wǎng)絡(luò)的一些指令(我說(shuō):“只懂得ifconfig”)
- 協(xié)程(說(shuō)了下是“線程的更小單位,能夠進(jìn)一步提高效率什么的”,感覺(jué)自己還是了解得不清晰)
https://github.com/Hpsyche/note/blob/master/操作系統(tǒng)/協(xié)程.md
數(shù)據(jù)結(jié)構(gòu)
數(shù)據(jù)結(jié)構(gòu)是面試使用最長(zhǎng)的一個(gè)環(huán)節(jié)。。
- 棧和隊(duì)列區(qū)別
- hash原理
- hash擴(kuò)容
- 各種map區(qū)別
- 紅黑樹特征
- 為什么使用紅黑樹,相比AVL優(yōu)勢(shì)
- 快排
- 快排是穩(wěn)定排序嗎?(這個(gè)回答正確了,但是原因解釋錯(cuò)了)
所謂排序的穩(wěn)定性,就是指在排序過(guò)程中,在對(duì)a關(guān)鍵字排序后會(huì)不會(huì)改變其他關(guān)鍵字的順序。
自己都可以試試,在比較有相同關(guān)鍵字序列的情況下,穩(wěn)定的排序會(huì)將較早出現(xiàn)的元素排在前面,而不會(huì)是后面。
比如:對(duì)(49,38,49,20,97,76)排序,就是不穩(wěn)定排序 - 跳表
- 鏈表+hash(這不知道是不是我聽(tīng)錯(cuò)了,不過(guò)我真不知道能組成什么數(shù)據(jù)結(jié)構(gòu))
- HashMap:如果樹深度太大,怎么改進(jìn)?(這個(gè)現(xiàn)在還不知道答案?取模分多樹?)
數(shù)據(jù)庫(kù)
- 簡(jiǎn)單講一下sql
- 常用sql命令
- InnoBD 與 MyISAM 兩者之間的對(duì)比
整體來(lái)說(shuō)收獲不少,希望以后能有更多面試機(jī)會(huì)把,爭(zhēng)取能夠大四秋招上岸?。。。?!
相關(guān)文章

9月最新184道阿里、百度、騰訊、頭條Java面試題合集(小結(jié))
這篇文章主要介紹了9月最新184道阿里、百度、騰訊、頭條Java面試題合集,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-09-09- 這篇文章主要介紹了騰訊遠(yuǎn)程電話面試經(jīng)歷,分享總結(jié)了一次騰訊電話面試中所遇到的各種問(wèn)題與相關(guān)的經(jīng)驗(yàn)教訓(xùn),并給出了相應(yīng)的參考意見(jiàn),需要的朋友可以參考下2020-01-07
騰訊測(cè)試崗位的面試經(jīng)歷與經(jīng)驗(yàn)分享【一面、二面與三面】
這篇文章主要介紹了騰訊測(cè)試崗位的面試經(jīng)歷與經(jīng)驗(yàn),總結(jié)分享了騰訊測(cè)試崗招聘面試中一面、二面與三面各個(gè)環(huán)節(jié)所遇到的問(wèn)題與參考建議,需要的朋友可以參考下2020-01-03- 這篇文章主要介紹了騰訊社招面試經(jīng)歷與問(wèn)題,總結(jié)分析了騰訊社招面試過(guò)程中所遇到的各種問(wèn)題及相應(yīng)的參考答案,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2019-11-27
騰訊后端面試經(jīng)歷與經(jīng)驗(yàn)總結(jié)
這篇文章主要介紹了騰訊后端面試經(jīng)歷與經(jīng)驗(yàn),總結(jié)分析了騰訊面試過(guò)程中所經(jīng)歷的問(wèn)題、面試流程、相關(guān)注意事項(xiàng)與失敗經(jīng)驗(yàn)總結(jié),需要的朋友可以參考下2019-11-25- 這篇文章主要介紹了2019年騰訊最新前端工程師面試題(附答案),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-11-21
- 這篇文章主要介紹了騰訊面試算法題之編碼問(wèn)題,結(jié)合具體案例形式分析了基于java的編碼轉(zhuǎn)換相關(guān)算法原理與操作技巧,需要的朋友可以參考下2019-10-08
- 這篇文章主要介紹了騰訊游戲客戶端開發(fā)面試經(jīng)歷,整理記錄了騰訊游戲開發(fā)面試中遇到的各種問(wèn)題與心得體會(huì),需要的朋友可以參考下2019-09-24
- 這篇文章主要介紹了騰訊游戲客戶端開發(fā)面試經(jīng)歷,總結(jié)分享了騰訊游戲客戶端開發(fā)面試所涉及到的考點(diǎn)與注意事項(xiàng),需要的朋友可以參考下2019-09-20
騰訊前端面試題相關(guān)知識(shí)點(diǎn)集錦
這篇文章主要介紹了騰訊前端面試題相關(guān)知識(shí)點(diǎn),整理總結(jié)了騰訊前端面試中所涉及的相關(guān)基礎(chǔ)知識(shí)點(diǎn)與疑難問(wèn)題,需要的朋友可以參考下2019-08-27


