記錄一下昨天的面試,感覺是涼了鬼雀。
字節(jié)跳動(dòng)嘛,早有耳聞面試很難蛙吏,尤其是算法題部分源哩,所以特地準(zhǔn)備了很久算法,沒想到最后沒有跪在算法鸦做,跪在數(shù)據(jù)庫(kù)……
背景
2019屆中流985計(jì)算機(jī)本科励烦,已經(jīng)保研南京大學(xué),同學(xué)幫忙內(nèi)推暑期實(shí)習(xí)泼诱,時(shí)長(zhǎng)3個(gè)月坛掠。目標(biāo)崗位是后臺(tái)開發(fā),頭條后臺(tái)用Golang較多治筒,本人沒有接觸過Golang屉栓,對(duì)Java比較熟悉。
面試
- 先自我介紹一下耸袜,最近在做什么友多。打算什么時(shí)候開始實(shí)習(xí),能實(shí)習(xí)多久堤框。
- 對(duì)什么語(yǔ)言比較熟悉域滥?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撤缴,答非所問了)
- 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
- 數(shù)據(jù)庫(kù)有用過哪些涝缝,對(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í)不是很好佣赖。 - 假設(shè)客戶端請(qǐng)求服務(wù)器端恰矩,一直得不到響應(yīng),如何排查憎蛤。(吐槽一下外傅,這個(gè)問題問的是真的爛纪吮,我一直以為是要找系統(tǒng)的問題,最后才知道只是想問我如何排查網(wǎng)絡(luò)問題)
- HTTP有用過嗎萎胰,HTTP有哪些方法碾盟,請(qǐng)求頭用過哪些,狀態(tài)碼知道多少技竟。(這個(gè)我沒有背冰肴,只說出來一些,其實(shí)查手冊(cè)就可以榔组,為什么要背呢熙尉,不理解為什么問這個(gè)問題)
- TCP 四次回收,TIME_WAIT做什么搓扯,CLOSE_WAIT做什么检痰。
- Spring IOC、AOP 實(shí)現(xiàn)的原理 jdk動(dòng)態(tài)代理和cglib的區(qū)別
- Redis用過吧锨推,有哪些數(shù)據(jù)類型铅歼,Redis單線程如何保證不阻塞。(由于我只是會(huì)用Redis换可,所以基本沒答上來)
- 業(yè)務(wù)題椎椰,假設(shè)頭條每一篇文章,用戶都有點(diǎn)贊和取消點(diǎn)贊的操作沾鳄,還要查看每一篇文章的點(diǎn)贊數(shù)慨飘,如何實(shí)現(xiàn)?
- 算法題译荞,一個(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)
- 算法題慎皱,強(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)) - 你還有什么想問的
總結(jié)
這次面試總的來說還是相當(dāng)失敗的夺欲,一方面問到了很多我的知識(shí)盲點(diǎn),另一方面自己確實(shí)有些以為會(huì)了的地方還理解得不夠深刻今膊。頭條面試些阅,名不虛傳。無論如何斑唬,再接再厲吧市埋。