欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

騰訊Java后臺面試經(jīng)驗總結(jié)

  發(fā)布時間:2020-01-15 14:15:43   作者:Hpsyche   我要評論
這篇文章主要介紹了騰訊Java后臺面試經(jīng)驗,總結(jié)分析了騰訊java面試中所涉及的計算機網(wǎng)絡(luò)、操作系統(tǒng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)庫相關(guān)概念、原理與常見面試知識點,需要的朋友可以參考下

下午,突然收到騰訊的電話面試,心想:“不是3、4月份投的簡歷嗎,,,現(xiàn)在我還有機會被撈,管他,面了再說”
由于騰訊本身不是Java的主場,而且本身是一面,問的都是基礎(chǔ),所以面試基本沒有問到Java、JVM等詳細的知識。面試大體問題如下:

計算機網(wǎng)絡(luò)

  • 講下七層協(xié)議:講得還ok,大體說了下每層的功能等

  • 三次握手、四次揮手:由于之前認真看過,所以講得也算流暢,詳細說了下過程
    面試官問:“四次揮手最后B給A請求的等待時間(是什么時間)”
    我:“emmmmmmmm,不知道”
    后查詢發(fā)現(xiàn)還是自己掌握得不好,其實答案也很簡單,如下:

    TCP關(guān)閉連接用四次握手來實現(xiàn),即A--->B Fin, B--->A ACK, B--->A Fin, A--->B ACK,為什么要這樣?
    A--->B Fin, B--->A ACK ,A屬于主動關(guān)閉方,收到B的ACK后,A到B的方向連接關(guān)閉,即half shutown ,
    這時A不能再發(fā)送數(shù)據(jù)了。這種狀態(tài)下B還是可以單向發(fā)送數(shù)據(jù)的,B的數(shù)據(jù)發(fā)送完畢,也做關(guān)閉動作了:B--->A Fin
    A--->B ACKB收到ACK,關(guān)閉連接。但是A無法知道ACK是否已經(jīng)到達B,于是開始等待?
    等待什么呢?假如ACK沒有到達B,B會為FIN這個消息超時重傳 timeout retransmit ,
    那如果A等待時間足夠,又再次收到FIN消息,說明剛才A返回的ACK沒有到達B,于是再發(fā)送ACK,
    直到在足夠的時間內(nèi)沒有收到FIN,說明ACK成功到達。
    這個等待時間至少是:B的timeout + FIN的傳輸時間,為了保證可靠,采用更加保守的等待時間2MSL。

    按照《趣談網(wǎng)絡(luò)協(xié)議》的形象說法:
    斷開的時候,我們可以看到,當(dāng) A 說“不玩了”,就進入 FIN_WAIT_1 的狀態(tài),B 收到“A 不玩”的消息后,發(fā)送知道了,就進入 CLOSE_WAIT 的狀態(tài)。
    A 收到“B 說知道了”,就進入 FIN_WAIT_2 的狀態(tài),如果這個時候 B 直接跑路,則 A 將永遠在這個狀態(tài)。TCP 協(xié)議里面并沒有對這個狀態(tài)的處理,但是 Linux 有,可以調(diào)整 tcp_fin_timeout 這個參數(shù),設(shè)置一個超時時間。
    如果 B 沒有跑路,發(fā)送了“B 也不玩了”的請求到達 A 時,A 發(fā)送“知道 B 也不玩了”的 ACK 后,從FIN_WAIT_2 狀態(tài)結(jié)束,按說 A 可以跑路了,但是最后的這個 ACK 萬一 B 收不到呢?則 B 會重新發(fā)一個“B 不玩了”,這個時候 A 已經(jīng)跑路了的話,B 就再也收不到 ACK 了,因而 TCP 協(xié)議要求 A 最后等待一段時間 TIME_WAIT,這個時間要足夠長,長到如果 B 沒收到 ACK 的話,“B 說不玩了”會重發(fā)的,A 會重新發(fā)一個 ACK 并且足夠時間到達 B。

  • https(大概說了下,但自我感覺講得不好)

  • 慢啟動算法、滑動窗口(之前看過,不過由于沒認真看,且當(dāng)時腦子一短路,沒想起來是什么,回答面試官“忘了”的時候,我就知道自己涼了)
    https://github.com/Hpsyche/note/blob/master/計算機網(wǎng)絡(luò)/滑動窗口.md

  • 一個請求報文包含了什么信息
    (請求方式(Get/Post) url 協(xié)議名 請求頭部 空行 請求體)

  • 響應(yīng)碼狀態(tài)有什么?
    200 204 206 301 302 303 304 400 404 500 501 503
    415(不支持的媒體類型,說錯成了“514”,不過面試官沒發(fā)現(xiàn),或是沒有拆穿我)

操作系統(tǒng)

  • 線程及進程區(qū)別:講得還ok
  • 查看CPU狀態(tài)命令:不懂
  • top命令:真不懂(一開始還聽成了tail)
  • 管道命令,只說了兩個
    查看進程:ps -ef|grep
    查看端口占用情況:netstat -anp |grep 3306*
  • linux查看配置網(wǎng)絡(luò)的一些指令(我說:“只懂得ifconfig”)
  • 協(xié)程(說了下是“線程的更小單位,能夠進一步提高效率什么的”,感覺自己還是了解得不清晰)
    https://github.com/Hpsyche/note/blob/master/操作系統(tǒng)/協(xié)程.md

數(shù)據(jù)結(jié)構(gòu)

數(shù)據(jù)結(jié)構(gòu)是面試使用最長的一個環(huán)節(jié)。。

  • 棧和隊列區(qū)別
  • hash原理
  • hash擴容
  • 各種map區(qū)別
  • 紅黑樹特征
  • 為什么使用紅黑樹,相比AVL優(yōu)勢
  • 快排
  • 快排是穩(wěn)定排序嗎?(這個回答正確了,但是原因解釋錯了)

    所謂排序的穩(wěn)定性,就是指在排序過程中,在對a關(guān)鍵字排序后會不會改變其他關(guān)鍵字的順序。
    自己都可以試試,在比較有相同關(guān)鍵字序列的情況下,穩(wěn)定的排序會將較早出現(xiàn)的元素排在前面,而不會是后面。
    比如:對(49,38,49,20,97,76)排序,就是不穩(wěn)定排序

  • 跳表
  • 鏈表+hash(這不知道是不是我聽錯了,不過我真不知道能組成什么數(shù)據(jù)結(jié)構(gòu))
  • HashMap:如果樹深度太大,怎么改進?(這個現(xiàn)在還不知道答案?取模分多樹?)

數(shù)據(jù)庫

  • 簡單講一下sql
  • 常用sql命令
  • InnoBD 與 MyISAM 兩者之間的對比

整體來說收獲不少,希望以后能有更多面試機會把,爭取能夠大四秋招上岸?。。。?!

相關(guān)文章

最新評論