字節(jié)跳動(dòng)后臺(tái)實(shí)習(xí)一面涼經(jīng)

記錄一下昨天的面試,感覺是涼了。
字節(jié)跳動(dòng)嘛,早有耳聞面試很難,尤其是算法題部分,所以特地準(zhǔn)備了很久算法,沒想到最后沒有跪在算法,跪在數(shù)據(jù)庫……

背景

2019屆中流985計(jì)算機(jī)本科,已經(jīng)保研南京大學(xué),同學(xué)幫忙內(nèi)推暑期實(shí)習(xí),時(shí)長3個(gè)月。目標(biāo)崗位是后臺(tái)開發(fā),頭條后臺(tái)用Golang較多,本人沒有接觸過Golang,對(duì)Java比較熟悉。

面試

  1. 先自我介紹一下,最近在做什么。打算什么時(shí)候開始實(shí)習(xí),能實(shí)習(xí)多久。
  2. 對(duì)什么語言比較熟悉?Java。 HashMap底層實(shí)現(xiàn),如何擴(kuò)容。HashMap為什么線程不安全,多個(gè)線程同時(shí)put時(shí)會(huì)發(fā)生什么?(這里答得不好,沒有答到同時(shí)put導(dǎo)致鏈表成環(huán)的場(chǎng)景,反而是想到了用迭代器時(shí)其他線程對(duì)HashMap進(jìn)行了修改引發(fā)的ConcurrentModificationException,也就是Fail-Fast,答非所問了)
  3. JavaGC 有了解嗎,常用的GC算法。垃圾回收器有了解嗎?講一下你知道的。G1和CMS。CMS中如果大對(duì)象要進(jìn)入老年代,老年代內(nèi)存不足了,該怎么辦。Full GC。 Full GC之后仍然空間不足呢? 我回答重新申請(qǐng)內(nèi)存,但也不是特別肯定。面試官?zèng)]有再追問了。實(shí)際上應(yīng)該是拋出 java.lang.OutOfMemoryError
  4. 數(shù)據(jù)庫有用過哪些,對(duì)什么比較熟悉。MySQL,Redis和MongoDB(后兩個(gè)都只是用過) MySQL索引是什么數(shù)據(jù)結(jié)構(gòu),B+樹。B+樹和B樹的區(qū)別,為什么用B+樹而不是B樹?這個(gè)一時(shí)沒答得上來,今天好好梳理了一下:MySQL用B+樹(而不是B樹)做索引的原因。
    然后考了我組合索引的知識(shí): 假設(shè)有key (a,b,c) ,那么執(zhí)行select * from table1 where a=? and b= ? 和 select * from table1 where b= ? and c= ? 哪一個(gè)會(huì)用到索引。這個(gè)當(dāng)時(shí)真不會(huì),就只好說不會(huì)了。MySQL索引這里掌握的確實(shí)不是很好。
  5. 假設(shè)客戶端請(qǐng)求服務(wù)器端,一直得不到響應(yīng),如何排查。(吐槽一下,這個(gè)問題問的是真的爛,我一直以為是要找系統(tǒng)的問題,最后才知道只是想問我如何排查網(wǎng)絡(luò)問題)
  6. HTTP有用過嗎,HTTP有哪些方法,請(qǐng)求頭用過哪些,狀態(tài)碼知道多少。(這個(gè)我沒有背,只說出來一些,其實(shí)查手冊(cè)就可以,為什么要背呢,不理解為什么問這個(gè)問題)
  7. TCP 四次回收,TIME_WAIT做什么,CLOSE_WAIT做什么。
  8. Spring IOC、AOP 實(shí)現(xiàn)的原理 jdk動(dòng)態(tài)代理和cglib的區(qū)別
  9. Redis用過吧,有哪些數(shù)據(jù)類型,Redis單線程如何保證不阻塞。(由于我只是會(huì)用Redis,所以基本沒答上來)
  10. 業(yè)務(wù)題,假設(shè)頭條每一篇文章,用戶都有點(diǎn)贊和取消點(diǎn)贊的操作,還要查看每一篇文章的點(diǎn)贊數(shù),如何實(shí)現(xiàn)?
  11. 算法題,一個(gè)鏈表,奇數(shù)節(jié)點(diǎn)升序,偶數(shù)節(jié)點(diǎn)降序,如何使鏈表升序?我給了個(gè)O(n)的算法:先把奇數(shù)節(jié)點(diǎn)和偶數(shù)節(jié)點(diǎn)分別拿出來,得到兩個(gè)鏈表,再把偶數(shù)節(jié)點(diǎn)的鏈表反轉(zhuǎn),時(shí)間復(fù)雜度O(1),最后兩個(gè)有序鏈表合并,O(n)
  12. 算法題,強(qiáng)盜要搶劫n個(gè)村莊,每個(gè)村莊能搶到一定的錢財(cái),但不能搶劫相鄰的村莊,問最多能搶到多少錢。 反應(yīng)了兩分鐘,發(fā)現(xiàn)是DP,狀態(tài)方程:
    f(n)=max(value[n]+f(n-2),f(n-1))
  13. 你還有什么想問的

總結(jié)

這次面試總的來說還是相當(dāng)失敗的,一方面問到了很多我的知識(shí)盲點(diǎn),另一方面自己確實(shí)有些以為會(huì)了的地方還理解得不夠深刻。頭條面試,名不虛傳。無論如何,再接再厲吧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容