字节后端二面,难到哭

有同学跟我说字节的二面把他快打哭了,我看了下基本是短链这个项目的扩展。所以,不要说某某项目烂大街了,除非你在核心业务组做了很多核心的特性,否则在面试官眼里的项目都是烂大街!校招关键考察的是你对于自己的项目能否自圆其说(这个最基本的点,80%的同学都做不到,就不要抱怨环境了)

1.自我介绍

2.我们先不聊项目了哈,我们聊一个系统设计类的问题,放松一下(无语)

3.有没有了解过短链系统,说一下你的理解

4. 好,那现在你来设计一个短链系统,你怎么来设计

5.你刚刚说就两个功能:一个是长链转短链,一个是短链还原长链并跳转非常好,那你可以拆一下模块都有哪些

6.打断一下,你刚提到短链生成那短码生成这块能不能再往里拆一拆

7.你刚提了哈希那你这个哈希冲突你准备怎么解决

8.短链支持自定义码吗?如果支持怎么处理冲突?自定义短码如果重复了怎么办

9.这个系统要支持用户设置有效期吗你打算怎么处理这个字段

10如果有人恶意生成链接怎么办

11你说到风控,我这里刚想刚好跟你深入聊一下,我觉得这个还蛮有意思的,比如说你在长链转短链里面已经有风控了,那你短链转长链需要风控吗?因为你的数据库里的东西都是安全的,你需要风控么还是说不需要,为什么

12.你刚说加黑名单那这个风控是在生成短链的时候做,还是跳转的时候也要做

12.短码和长链映射关系存到数据库有什么要注意的点或者是你那个表怎么设计

13这边数据库写入时候要注意什么

14数据存储当量大了以后怎么操作呢?就比如说量特别大,你一张表存完然后呢

15. 那你会怎么做分库分表?按什么规则分?用哈希?那hash怎么做落库映射

15你怎么判断这个链接是过期链接你的状态字段怎么用

16.如果我之前封禁了一个恶意链接,有个新用户又拿这个原始长链想同的长链进来要来生成短链了,你是怎么处理的

17黑名单这块怎么做拦什么、存哪里怎么查

18.我继续深再深问一下,你刚才说到用redis来做这个黑名单管理,为什么,为什么不用数据库还是说用了,还有你的redis的key和value怎么设计用什么结构

19那你觉得你可以到多少,你觉得这个系统是ok的,因为你每次都要查这个东西,你要查三,四次是吧整体你觉得这个数据量或者整个RT大概会在多少你这个系统是能搞得定的

20.无论你这个Redis set里有1万10万甚至100万条,查一次都是毫秒以内,你确定么,你了解Redis set底层么?是这样做的

21.那有实测过么比如它在普通网络、单机 Redis大概是怎么样的

22.那我如果再大怎么办比如总量不止10几万

23.手撕:员工公平抽奖:工行有30万个员工,其工卡号码分别是1~30万,在接下来的某天他们将举行年会,需要抽出10万个员工发奖品。我们有一个随机数生成函数rand()能够生成0~65535的整数,请写一个公平的抽奖程序,输出这10万个员工的工卡号码

24.如果总共30万员工,抽9999个员工呢

我写了一份关于12306项目核心面试亮点的总结和面试话术逐字稿,欢迎大家订阅。

12306项目核心亮点及面试话术逐字稿

1. 星球上的项目主要讲了12306的基本问题, 比如车票搜索、下订单、三方支付的对接、分库分表、缓存一致性等;但比如写扩散问题、最短换乘问题、候补购票实现方案、如何筛选相邻座位算法优化、灰产问题、12306的真实架构分析等等是没有涉及到的。

2.原有星球或者慕课项目可能讲了项目如何实现的技术方案,但整体比较繁琐。我本身在做面试官,面试官要的是

你按照“业务场景 -> 面临问题 -> 解决方案 -> 权衡思考 -> 潜在优化”的结构来阐述,但很多同学的总结和理解能力有限,很多时候表达的含糊不清或者理解错误,而这份面试话术将这些方案进行再消化,直击面试要点,通俗易懂的给面试官讲述出来,理解后,背就完事了,准确又快速!

#面试##后端##秋招##字节##面经#
全部评论
nb,收藏了
点赞 回复 分享
发布于 10-17 19:06 广东

相关推荐

1. 自我介绍(先做一个自我介绍)2. 回顾计算机相关基础知识时有没有什么收获?3. 怎么查看Docker日志?4. Linux系统上看日志文件用什么命令?正在生成的日志和要截取的日志分别用什么参数?5. 日志命令中- f和其他参数的区别是什么?- f是干什么的?不带- f呢?6. 用三两句话简单介绍自己做的事情和擅长的技能。7. 参考百度网盘做AI云盘时,怎么推测它的功能和实现?举具体例子(如文件目录拉取)说明怎么推测、怎么实现,以及如何判断推测对错。8. 文件存储和目录存储的区别是什么?它们的数据结构是什么样子的?9. 如何通过一个文件回到它的上一层目录?回到上面三层呢?若要实现点击地址行直接跳转,准备怎么设计?10. 把一个文件/目录从一个目录移到另一个目录,存储里要改变哪些东西?移动目录时怎么做?11. 删除目录时用了什么操作?12. 目录下文件特别多,递归去做移动/删除会有什么问题?怎么解决?13. 短链是怎么做的?(是不是复现别人成型的东西)14. 长链怎么转成短链?长链和短链的对应关系是什么?15. 62取模得到的是什么?哈希取模会不会有问题?16. 短链算法能支持多少范围的链接?17. 作为短链平台,要支持很多公司生成短链,且要求短链短、支持量足够大,怎么设计短链算法?18. Java中HashMap是怎么实现的?1.7和1.8有什么区别?19. HashMap为什么既要链表又要红黑树?两者性质有什么差别?20. 什么是平衡树?红黑树是怎么维持平衡的?需要旋转吗?21. 除了红黑树,还了解哪些平衡树?22. Java中JVM内存分配时,新生代和老年代的担保机制具体是什么?23. GVM的内存结构是什么样子的?新生代、老年代、元空间分别存什么内容,数据怎么整理流转?24. 除了复制算法,还有哪些垃圾回收算法?它们有什么区别?25. 分代收集算法是什么?26. MySQL的事务隔离级别有哪些?分别是什么意思?27. 事务隔离级别中,无锁的实现方式是什么?MVCC了解吗?怎么实现的?28. MVCC能解决幻读问题吗?为什么?29. Redis中用了什么数据结构?Redis的字符串数据结构是怎么实现的?30. 给定旋转有序数组(如1356789→7891356),设计查找算法(如查找5、8、2)。31. 设计的查找算法和二分查找有什么区别?32. 给定二叉树的两个节点,怎么找它们的最低公共祖先?33. 给定二叉树的三个节点,怎么找最低公共祖先?34. 给定二叉树的四个、五个节点,怎么找最低公共祖先?35. 给定多个段(段内有序,合并时相同k的item保留value最大的),设计合并算法,说明思路。36. 有没有什么问题想问面试官?
点赞 评论 收藏
分享
评论
1
22
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务