一面 45min1. 自我介紹2. 介紹項目的具體使用3. 了解過市面上類似的項目嗎?4. redis+lua腳本實現(xiàn)限流,具體如何實現(xiàn)的?5. 為什么要用lua腳本(答:原子性)6. 使用pipeline能實現(xiàn)類似的效果嗎?7. lua腳本里面的每條指令都一定執(zhí)行成功或者一定執(zhí)行失敗嗎?比如說:腳本里面三條指令,第二條執(zhí)行失敗會怎么樣?8. 為什么要把消息放到rocketmq?(答:消息的異步解耦)9. 如果沒有rocketmq,有類似的方法實現(xiàn)嗎?比如說redis或者mysql實現(xiàn)10. 除了java語言,你還用過什么語言11. java經(jīng)常使用的一些數(shù)據(jù)類型有哪些12. 數(shù)據(jù)的集合或者容器有哪些?13. 你剛才提到set和map都是有hash結構,還有哪些可以通過非hash方式實現(xiàn)map結構(引導我往樹方面思考,沒答上來,好像treeMap)14. 鏈表的特點15. 如果頻繁的進行鏈表增刪,有什么需要考慮的問題?(引導:如果每次增加需要創(chuàng)建一塊內(nèi)存區(qū)域,如果刪除呢?)16. 如果我想要從鏈表某一個特定位置開始訪問,有什么優(yōu)化方案嗎?比如說一堆電話號碼,我想要從138的開始訪問,跳過從130開始的一系列號碼17. TCP和UDP的區(qū)別18. 什么情況下使用TCP,什么情況下使用UDP19. 視頻聊天的場景下,只使用UDP就可以了嗎?在丟包的情況下,如何保證通話畫面是連續(xù)的?20. 或者說其他任何一個使用UDP的場景,比如游戲,并不是數(shù)據(jù)丟失了就算了,遇到這種情況如何處理?21. TCP如何應對這種場景呢?22. TCP的數(shù)據(jù)一定不會丟失嗎?23. 手撕代碼:一個表,表里每行數(shù)據(jù)包括3個字段 id,color,shape,有兩種操作:C和S,分別代表操作color和shape,分別設置color或shape為‘Y’。數(shù)據(jù)輸入:輸入總行數(shù)n,要查詢的行號i,要操作的次數(shù)k,接下來k行輸入要修改的類型 C或S,要修改的行數(shù)范圍a, b,最后輸出第i行的結果