美團(tuán)日常實(shí)習(xí)后端一面
8.23美團(tuán)日常實(shí)習(xí)一面,無(wú)八股無(wú)算法。
面試官人很好很溫柔,我聽(tīng)不懂也很細(xì)心的給我反復(fù)講場(chǎng)景,引導(dǎo)我回答問(wèn)題

可我太菜了,感覺(jué)涼了。
圍繞簡(jiǎn)歷我寫(xiě)的四個(gè)職責(zé)來(lái)問(wèn)的,因此分為四塊
1.打開(kāi)項(xiàng)目(IDEA)講解一下責(zé)任鏈和決策樹(shù)是如何代碼實(shí)現(xiàn)的。
場(chǎng)景問(wèn)題:如果有一個(gè)業(yè)務(wù)a需要調(diào)用b,c,b,c又需要分別調(diào)用d,e和f,g,你會(huì)如何設(shè)計(jì)去實(shí)現(xiàn)這個(gè)邏輯(沒(méi)太弄明白,我就說(shuō)我項(xiàng)目的是決策樹(shù),單路的,后面不了了之)
2.代碼講解抽獎(jiǎng)算法如何實(shí)現(xiàn)的以空間換時(shí)間,為什么要這樣做?
場(chǎng)景問(wèn)題:設(shè)計(jì)一個(gè)類,用來(lái)解決任務(wù)分配服務(wù)器的。有多個(gè)服務(wù)器,不同服務(wù)器內(nèi)存大小不同,設(shè)計(jì)一個(gè)類來(lái)對(duì)任務(wù)進(jìn)行分配,自己發(fā)揮設(shè)計(jì)輸入輸出。(直接idea現(xiàn)場(chǎng)編寫(xiě),沒(méi)寫(xiě)完后面講了一下思路)
3.redis是如何使用的?電商場(chǎng)景下超賣(mài)問(wèn)題如何解決?如何用代碼來(lái)實(shí)現(xiàn)的延遲隊(duì)列?
場(chǎng)景問(wèn)題:如何實(shí)現(xiàn)一個(gè)類似支付時(shí)間十分鐘的定時(shí)任務(wù)?
我:用延遲隊(duì)列或者設(shè)置redis過(guò)期時(shí)間,定時(shí)任務(wù)一直掃描
面試官:這兩個(gè)方案無(wú)如何做到每個(gè)任務(wù)過(guò)期實(shí)時(shí)響應(yīng)?
我:應(yīng)該無(wú)法實(shí)現(xiàn)~(不知道)
面試官:而且定時(shí)任務(wù)每次都去遍歷全部數(shù)據(jù)代價(jià)太大,是否有更好的方案
我:按照時(shí)間排序的隊(duì)列,隊(duì)頭是最先過(guò)期的。
面試官:對(duì)于實(shí)時(shí)顯示時(shí)間倒計(jì)時(shí)遍歷隊(duì)列時(shí)間消耗問(wèn)題,是否有更好的方案?
我:二叉樹(shù)中的大小頂堆。(這里是面試官一直引導(dǎo)的)
4.看你使用到了MQ,沒(méi)啥好問(wèn)的,先說(shuō)一下你為什么用吧。
場(chǎng)景問(wèn)題:
面試官:如果我有一個(gè)隊(duì)列存儲(chǔ)的信息需要被多個(gè)消費(fèi)者同時(shí)消費(fèi),如何保證同時(shí)消費(fèi)以及順序消費(fèi)問(wèn)題?
我:每個(gè)業(yè)務(wù)對(duì)接一個(gè)隊(duì)列,交換機(jī)向需要信息的隊(duì)列發(fā)送數(shù)據(jù)
面試官:實(shí)際場(chǎng)景不會(huì)這么做,代價(jià)太大。
我:那就每個(gè)業(yè)務(wù)通過(guò)一個(gè)變量記錄讀取隊(duì)列的offset或者ID之類的。
面試官:如何存儲(chǔ)這個(gè)變量能夠做到崩潰恢復(fù)?
我:從MySQL猜到redis,最后說(shuō)的本地內(nèi)存。
面試官問(wèn)我:了不了解zookeeper,可以了解一下
面試結(jié)束。
#Java面經(jīng)# #美團(tuán)# #日常實(shí)習(xí)#
面試官人很好很溫柔,我聽(tīng)不懂也很細(xì)心的給我反復(fù)講場(chǎng)景,引導(dǎo)我回答問(wèn)題
圍繞簡(jiǎn)歷我寫(xiě)的四個(gè)職責(zé)來(lái)問(wèn)的,因此分為四塊
1.打開(kāi)項(xiàng)目(IDEA)講解一下責(zé)任鏈和決策樹(shù)是如何代碼實(shí)現(xiàn)的。
場(chǎng)景問(wèn)題:如果有一個(gè)業(yè)務(wù)a需要調(diào)用b,c,b,c又需要分別調(diào)用d,e和f,g,你會(huì)如何設(shè)計(jì)去實(shí)現(xiàn)這個(gè)邏輯(沒(méi)太弄明白,我就說(shuō)我項(xiàng)目的是決策樹(shù),單路的,后面不了了之)
2.代碼講解抽獎(jiǎng)算法如何實(shí)現(xiàn)的以空間換時(shí)間,為什么要這樣做?
場(chǎng)景問(wèn)題:設(shè)計(jì)一個(gè)類,用來(lái)解決任務(wù)分配服務(wù)器的。有多個(gè)服務(wù)器,不同服務(wù)器內(nèi)存大小不同,設(shè)計(jì)一個(gè)類來(lái)對(duì)任務(wù)進(jìn)行分配,自己發(fā)揮設(shè)計(jì)輸入輸出。(直接idea現(xiàn)場(chǎng)編寫(xiě),沒(méi)寫(xiě)完后面講了一下思路)
3.redis是如何使用的?電商場(chǎng)景下超賣(mài)問(wèn)題如何解決?如何用代碼來(lái)實(shí)現(xiàn)的延遲隊(duì)列?
場(chǎng)景問(wèn)題:如何實(shí)現(xiàn)一個(gè)類似支付時(shí)間十分鐘的定時(shí)任務(wù)?
我:用延遲隊(duì)列或者設(shè)置redis過(guò)期時(shí)間,定時(shí)任務(wù)一直掃描
面試官:這兩個(gè)方案無(wú)如何做到每個(gè)任務(wù)過(guò)期實(shí)時(shí)響應(yīng)?
我:應(yīng)該無(wú)法實(shí)現(xiàn)~(不知道)
面試官:而且定時(shí)任務(wù)每次都去遍歷全部數(shù)據(jù)代價(jià)太大,是否有更好的方案
我:按照時(shí)間排序的隊(duì)列,隊(duì)頭是最先過(guò)期的。
面試官:對(duì)于實(shí)時(shí)顯示時(shí)間倒計(jì)時(shí)遍歷隊(duì)列時(shí)間消耗問(wèn)題,是否有更好的方案?
我:二叉樹(shù)中的大小頂堆。(這里是面試官一直引導(dǎo)的)
4.看你使用到了MQ,沒(méi)啥好問(wèn)的,先說(shuō)一下你為什么用吧。
場(chǎng)景問(wèn)題:
面試官:如果我有一個(gè)隊(duì)列存儲(chǔ)的信息需要被多個(gè)消費(fèi)者同時(shí)消費(fèi),如何保證同時(shí)消費(fèi)以及順序消費(fèi)問(wèn)題?
我:每個(gè)業(yè)務(wù)對(duì)接一個(gè)隊(duì)列,交換機(jī)向需要信息的隊(duì)列發(fā)送數(shù)據(jù)
面試官:實(shí)際場(chǎng)景不會(huì)這么做,代價(jià)太大。
我:那就每個(gè)業(yè)務(wù)通過(guò)一個(gè)變量記錄讀取隊(duì)列的offset或者ID之類的。
面試官:如何存儲(chǔ)這個(gè)變量能夠做到崩潰恢復(fù)?
我:從MySQL猜到redis,最后說(shuō)的本地內(nèi)存。
面試官問(wèn)我:了不了解zookeeper,可以了解一下
面試結(jié)束。
#Java面經(jīng)# #美團(tuán)# #日常實(shí)習(xí)#
全部評(píng)論
和我某次面試差不多上來(lái)就是幾道場(chǎng)景題,妥妥是KPI
打開(kāi)idea,這么恐怖????
哥們哪個(gè)部門(mén)啊??
不會(huì)是xfg那個(gè)ddd項(xiàng)目吧
佬你oc了嗎
沃日,這個(gè)難度真的很正常嗎
這是哪個(gè)崗位啊
相關(guān)推薦
昨天 12:14
華南農(nóng)業(yè)大學(xué) 算法工程師 點(diǎn)贊 評(píng)論 收藏
分享
點(diǎn)贊 評(píng)論 收藏
分享
04-09 09:47
門(mén)頭溝學(xué)院 Java 點(diǎn)贊 評(píng)論 收藏
分享
點(diǎn)贊 評(píng)論 收藏
分享