個(gè)人bg:雙非本碩,一段小廠實(shí)習(xí)、本碩年級(jí)第一簡(jiǎn)歷項(xiàng)目:馬哥短鏈接(主項(xiàng)目)、本科橫向包裝(副項(xiàng)目)目前面試,一些中小廠面試(基本都過了,也去了某中廠干了一個(gè)月,剛好結(jié)束去字節(jié)),騰訊暑期基地后端開發(fā)&客戶端開發(fā)兩面(掛),字節(jié)byteintern后端開發(fā)五面(offer)時(shí)間線及面經(jīng)一面(1小時(shí)40分鐘):1. 開局自我介紹2. 介紹實(shí)習(xí)期間做的事情(面試官表示:我的風(fēng)格喜歡從你做了啥,克服了什么困難,來看你的學(xué)習(xí)能力)3. 介紹項(xiàng)目4. 項(xiàng)目提問,包括布隆過濾器誤判情況解決,布隆過濾器接近滿了怎么辦,布隆過濾器元素能刪除嗎?必須要?jiǎng)h呢?重定向問題,永久重定向還是臨時(shí)重定向?項(xiàng)目中用到的索引,接口被人惡意刷怎么辦,限流從哪些角度進(jìn)行的?消息隊(duì)列重復(fù)消費(fèi),冪等業(yè)務(wù)如何保證,為什么不直接MySQL層面用唯一索引解決?(這個(gè)唯一索引的點(diǎn)沒有把面試官說服,我開始扯范式設(shè)計(jì),給人家整笑了)5. Redis各分布式鎖對(duì)比,通過高可用和實(shí)時(shí)性角度說明,介紹一個(gè)相對(duì)比較平衡的6. 手撕:二叉樹轉(zhuǎn)鏈表7. 緩存雪崩、緩存穿透、緩存擊穿8. 令牌桶和漏桶,漏桶的勻速請(qǐng)求代碼具體怎么實(shí)現(xiàn)的?9. 手撕:面試官現(xiàn)場(chǎng)出了一道題,1TB日志數(shù)據(jù),結(jié)構(gòu)為user action timestamp count,選出最受歡迎的前十個(gè)用戶,受歡迎程度用總count表示,寫出Map和Reduce函數(shù)。二面(1小時(shí)3分鐘):1. 開局自我介紹2. 介紹項(xiàng)目3. 項(xiàng)目深挖,比一面還詳細(xì),具體到了表設(shè)計(jì),索引考慮,分表鍵,分表算法,為什么用這個(gè),和別的對(duì)比,分表分了多少表,每個(gè)表的數(shù)量有多少,最大可以存多少,需要考慮那些因素,除了分表還有其他解決方案嗎,分表帶來的弊端,緩存三件套情況,過期字段設(shè)計(jì),帶過期時(shí)間的具體查詢?cè)趺磳懙牡鹊?. 項(xiàng)目延伸八股:Redis缺點(diǎn),Redis的常見數(shù)據(jù)結(jié)構(gòu)以及使用場(chǎng)景,Set底層,布隆過濾器各操作時(shí)間復(fù)雜度,平替品等等,項(xiàng)目主要使用Redis因此主問Redis八股。5. 其他問題:關(guān)于大數(shù)據(jù)的處理(因?yàn)樗麄儾块T好像就是做數(shù)據(jù)處理相關(guān)的東西)6. 手撕:合并區(qū)間三面(1小時(shí)6分鐘):1. 開局自我介紹2. 介紹實(shí)習(xí)3. 介紹項(xiàng)目4. 碩士研究方向,開始問深度學(xué)習(xí)相關(guān)5. 項(xiàng)目拷打,但是沒有二面問的深,大體關(guān)于緩存一致性等,然后基于項(xiàng)目給出的場(chǎng)景設(shè)計(jì)題6. Redis架構(gòu)模式,主從&集群,用這個(gè)架構(gòu)存十個(gè)億的數(shù)據(jù)的缺點(diǎn)?如何優(yōu)化?了解過第三方的一些優(yōu)化框架嗎?7. Redis的過期刪除策略8. 零幀起手,大數(shù)據(jù):(沒錯(cuò),預(yù)判到了,我就說前兩面怎么有點(diǎn)喜歡往數(shù)據(jù)處理方面問)MapReduce,Hadoop,Spark,Hbase,HDFS9. Java HashMap的put過程10. HashMap線程安全嗎?為什么?如何讓它線程安全?11. 紅黑樹,vs平衡二叉樹12. CAS,Java的CAS怎么實(shí)現(xiàn)的?13. AOP相關(guān),怎么實(shí)現(xiàn),代理模式,不用代理模式怎么實(shí)現(xiàn)AOP?聽說過...嗎?( 沒聽清楚,應(yīng)該是個(gè)啥框架)14. 我現(xiàn)在有10億的數(shù)據(jù),找出最大的100個(gè)(考慮內(nèi)存和不考慮內(nèi)存)15. MySQL主鍵為什么一般用自增16. 再次回到碩士研究方向,面試官說有個(gè)地方?jīng)]有很聽明白,又說了一遍17. 手撕:跳躍游戲(貪心秒了),完成后說思路 + 時(shí)空復(fù)雜度HR面(47分鐘):在校生活問題就略了加面(33分鐘):1. 開局自我介紹2. 介紹項(xiàng)目3. 詢問做過最難的項(xiàng)目,以及亮點(diǎn)4. 項(xiàng)目再次拷打,不是很深入(基本就是一面的項(xiàng)目提問內(nèi)容再反復(fù)吟唱)5. MySQL Innodb 索引結(jié)構(gòu)相關(guān) vs 其他結(jié)構(gòu)6. 你遇到過一句sql執(zhí)行的很慢的場(chǎng)景嗎?能說說為什么以及怎么解決的嗎?7. 遇到過數(shù)據(jù)傾斜嗎?怎么解決的?8. 流式計(jì)算接觸過沒有?Spark Streaming,F(xiàn)link……?9. Java中什么時(shí)候需要重寫equals10. TCP/IP相關(guān)11. JVM相關(guān) 類加載器 雙親委派模型等12. 我現(xiàn)在有兩個(gè)文件,每個(gè)文件10億個(gè)URL,給你個(gè)內(nèi)存非常小的計(jì)算機(jī),找出兩個(gè)文件中相等的URL13. 總結(jié),速度很快,無算法題。加面完第二天offer個(gè)人感受:雙非沖大廠太難了,字節(jié)投了很多基本都簡(jiǎn)歷秒掛,給了機(jī)會(huì)的這個(gè)部門可算是面試中的良好發(fā)揮把握住了。其實(shí)個(gè)人感覺大家別因?yàn)榭吹骄W(wǎng)上大佬們天天都在各種面試而焦慮,我實(shí)習(xí)的時(shí)候另一個(gè)實(shí)習(xí)搭子一會(huì)兒面作業(yè)幫,一會(huì)兒面攜程,后面又面美團(tuán),面試真的超級(jí)多,而我面試機(jī)會(huì)就挺少的,但是只要好好把握,盡可能把自己的面試成功率提升,這樣別人面幾十家還沒上岸但你面一兩家就能offer也能曲線救國!祝大家的暑期實(shí)習(xí)成功!春招的朋友們也能順利上岸! #后端# #字節(jié)跳動(dòng)# #雙非本科求職如何逆襲# #暑期實(shí)習(xí)# #面經(jīng)#