面試復(fù)盤|成都百度Java提前批三面
面試復(fù)盤|成都百度Java提前批三面
我看一些百度三面都是聊天,加上前面面試比較水,而且這個部門說實話我是不怎么想去的。所以這一面基本沒怎么準備,但好巧不巧的是遇到一個面試官在家面試,問了一些技術(shù),剛好我又不會,他總是皺眉,表情不大友好。果然面完之后第二天就簡歷共享了,慘!
三面 7.28 40分鐘
介紹IM即時通訊系統(tǒng)的項目
你使用的是websocket協(xié)議嗎? 有聊天界面嗎?
因為我是采用的netty自定義協(xié)議,也沒有寫前端,是通過終端命令來的,所以這里沒有前端
項目的總體架構(gòu)和流程
我講了客戶端發(fā)起請求建立連接,然后群聊、私聊等等過程
用戶下線的功能是怎么做的
如果redis刪除數(shù)據(jù)失敗了怎么辦(項目中用戶下線后需要刪除redis)
用戶登錄功能是怎么做的
Redis的高可用了解嗎?
這里我答得不怎么好,說了redis的持久化機制和集群。但他想問的應(yīng)該是哨兵機制相關(guān)的吧
redis集群和哨兵模式的優(yōu)缺點
這里越說越不對勁了,自己給自己帶坑里去了
Kafka你了解哪些?
這里本來應(yīng)該可以背一背準備好的八股文,但我腦子抽了就不想背,問他想知道哪些,這里就把主動權(quán)交出去了,大忌大忌??!
Kafka的基本架構(gòu)是什么
我講了producer、consumer、broker等基本概念,這個問題之前沒怎么準備過,有點寬泛
你的消費者和線程之間的對應(yīng)關(guān)系是怎樣的
我就只知道一個消費者對應(yīng)一個線程這種。然后我主動說如果需要使用多線程的話,那么可以一個線程去拉取消息,然后通過一個隊列,來啟動多個線程進行消費。其實是網(wǎng)上博客看的,我也沒怎么懂,教訓(xùn)就是千萬不要自己給自己挖坑說一些模棱兩可不禁問的東西
你剛才說用一個隊列,那如果一條線程消費的手掛掉了,那offset是怎么提交的
然后這個地方說不清楚了,我都說不會了,這面試官不肯放過,還一直問,我也沒辦法,GG
JVM的內(nèi)存模型
線程同步的幾種方式
可重入鎖底層的實現(xiàn)(AQS)
AQS是怎么實現(xiàn)的
AQS的state變量是如何修改的
線程切換的過程有哪些(保存現(xiàn)場,移出可運行隊列,放入等待隊列)
進程和線程的區(qū)別
設(shè)計模式了解哪些(單例、工廠、策略)
工廠和抽象工廠模式的區(qū)別(這。。都沒聽說過)
然后他說這不應(yīng)該不知道啊,netty底層設(shè)計都用了抽象工廠模式。我又沒研究過netty使用的設(shè)計模式...
對于加班怎么看?
我說最好加班在干一些實際有意義的事情。然后他開始杠了,怎么才算有意義呢?如果項目進度拖慢了,你愿意加班嗎?
我說短時間可以,長期不行。他又杠如果就是長期怎么辦,我心里想還能怎么辦,還不快跑嘛
問到這里我就已經(jīng)無語了,加班搞得他很光榮一樣。。。
團隊意見不一致怎么辦
你有想過幫助其他人成長嗎?(滿臉問號)
還用過其他語言和技術(shù)棧嗎?(python和go)
反問部門業(yè)務(wù)啥的,走個過場。
討論和交流
一些答得不好的地方
redis的高可用機制,這個不是很清楚
Kafka的多線程消費怎么做
抽象工廠模式
總結(jié)
面試還是要掌握主動權(quán),主動說自己會的東西,了解的知識。三面問了一些技術(shù),確實也是盲區(qū)了。面試官態(tài)度也不怎么好,體驗很差??傊鸬貌缓?,體驗也很差。再接再厲
#面試復(fù)盤##校招##百度##java工程師##面經(jīng)#