字节跳动后端一二三面面经(已感谢信)

岗位 后端-data-抖音/直播/电商/剪映
一面:0801,1h
  1. 实习相关(10min)

  2. 字符串常用的方法,String、StringBuilder、StringBuffer区别,使用场景

  3. Integer对象作比较的时候(==、equals、-128-127缓存)

  4. volatile关键字有什么用

  5. volatile和其他的线程同步方法有哪些应用场景

  6. AQS常用的组件

  7. AQS主要的方法(方法名字忘了,说的原理和模板方法模式)

  8. 设计模式,对设计模式怎么看,怎么学习比较好?

  9. ClassNotFoundException和NoClassDefFoundError的区别(只知道一个是异常,一个是error)

  10. 项目中怎么处理异常

  11. 常用的Linux命令,netstat有哪些参数?

  12. 如何排查项目CPU占用过高,打印堆栈信息用哪个命令?

  13. Java中clone方法,clone方法创建对象和new对象有什么不同?使用场景分别是什么?

  14. 线程的状态,以及如何切换?

  15. Redis的过期淘汰方案(面试官问了我很多实际生产的问题,后来我说了一下就是做着玩的)

  16. 假如Redis还没过期,但是内存已经满了怎么办(应该回答报警扩容的,没想起来)

  17. 为什么要选用Redis呢,有没有什么其他的替代方案

  18. 缓存击穿,分布式锁解决,分布式锁key是什么

  19. 查询缓存可能会查不到是一个什么场景?(一开始没太明白要问啥,查不到就去查数据库呗,数据库再查不到就返回空,后来感觉可能是缓存穿透问题?)

  20. Redis数据结构

  21. springboot和springcloud介绍一下

  22. 还有哪些分布式框架

  23. spring循环依赖

  24. 代码:带过期时间的LRU

二面:0804,50min

  1. 自我介绍

  2. 实习相关(20min)

  3. 算法,排序链表

  4. 代码中有输出语句,把程序里面的状态输出到外部屏幕的整个状态,操作系统都做了什么

  5. 为什么要分为用户态和内核态,是什么触发了这个切换

  6. 具体用的哪个系统调用

  7. 代码写好了之后是怎么被运行的

  8. JVM本身也是一个程序,它是怎么运行起来的呢,操作系统做了什么事

  9. 在浏览器输入网址的过程,DNS是怎么进行解析的

  10. 报文来到了路由器,路由器怎么知道发送到哪个端口,路由表是怎么建立起来的

  11. 场景题:

    1. 存商品数据,kv形式,用什么存(我只会redis和mysql,我说的mysql因为数据量很大。。。)

    2. 如果只通过商品id来取数据,没有范围查询,索引应该怎么设置(是不是应该答hash索引的。。。总说B+树,我都忘了hash索引这个东西了。但是hash索引也不是人为设置的啊。。)

    3. 索引的分类和底层

    4. MySQL服务器挂了怎么办

    5. MySQL主从怎么同步,有什么问题

    6. 直接访问MySQL延迟很高,比如MySQL集群和线上的服务不在一个网段,有什么解决办法吗(不会)

    7. 想要在表上新增一列应该怎么做(我说的线上直接加)

    8. 线上的MySQL库会很大,直接加会出现问题吗(我没了解过,想了一下感觉可能会造成MySQL的一段时间不可用,下来搜了一下好像MySQL5.6以上已经支持了线上修改表)

  12. 反问

操作系统+场景题有一半没答上来。

三面:0808 50min

  1. 自我介绍

  2. 项目相关(15min)问的一些技术动机,回答的不太好。

  3. 实习经历(5min)

  4. 算法题 二叉树Z字形层次遍历

  5. 场景题:给两个流,一个是系统发出去的推送,一个是用户点击推送的行为。如果十分钟内用户点击了,生成一个正样本。如果用户没有点击,或者10分钟后点击了,生成一个负样本。

    我写了两个消费者,第一个消费者就是把所有发出去的推送都用Redis暂存一下,第二个消费者消费用户点击的推送,从redis中取出,对比时间,十分钟内就生成一个正样本,10分钟外就生成一个负样本,然后删除。同时布置一个定时任务,每隔12小时扫描一下redis里面的key,如果有超过10分钟的了,就读取出来,然后生成一个负样本。

  6. 然后问我如果不借助redis,并且数据量非常大,怎么实现。(不会)

    我的理解是这两个一个是全部,一个是被点击的,是需要做差集去求出没有点击的。但是又在两个消费者里,不通过一个中间件,怎么计算呢。。有没有大佬解答一下

项目和场景题都不行。项目问的不是很难,但是技术动机思考的确实不够,面试时脑子也有点短路,下来复盘了一下,其实可以回答的更好的。场景题真的就是自身知识的局限性了。

0809感谢信

#字节跳动面经#
全部评论

相关推荐

05-06 15:29
东华大学 C++
1. ​分布式订单ID生成? 短时间高并发下如何保证唯一性?我先回答了雪花-like, 上段实习中, 我们项目的全局GUID生成器是我写的, 考虑了短时间内大量产生的情况, 向后借用, 未考虑时钟回拨然后想起来当时和leader讨论,  单独的GUID生成中心, 分批向各个ds批发号段.. 或者是用tacplus的自增id, 但是这样效率太低2. ​CPU 性能瓶颈分析使用 prof 工具监视热点函数的性能消耗3. 上段实习工作内容? 难点?    背包/仓库/道具 ​重构模块追问​:    在两周内重构1万行代码,如何保证代码质量?是否引入单元测试或自动化验证?    10天完成15天任务,如何协调开发与测试资源?是否牺牲技术债?4. 问了一点网络: 网络通信与实时系统视频会议与代码共享的链路设计追问​:解释从你的设备到面试官屏幕的完整网络路径(如NAT穿透、协议选择)5. 游戏服务器同步机制? 和互联网开发的区别服务器作为权威状态源,定期向客户端广播游戏世界的完整或增量状态(如玩家位置、血量)电商无状态服务可通过REST API+RPC横向扩展,而游戏服务器需维护长连接和会话状态。6. 系统设计 分布式事务与最终一致性​游戏道具交易涉及多个系统(背包、仓库、邮件),如何设计分布式事务?对比电商订单支付+库存扣减。​回答方向​:​Saga模式​:将事务拆分为多个可补偿步骤(如“扣道具-发邮件-记录日志”,失败则回滚)。对比:电商更倾向异步消息队列​(如Kafka)实现最终一致性。7. 游戏服务器宕机后如何快速恢复玩家状态?电商系统如何设计类似容灾机制?定时落DB+游戏整体运行在共享内存, 方便resume7. 游戏后端请求链路分析采用自定义的可靠UDP协议​(KCP),平衡延迟与可靠性. 玩家操作(如移动、技能释放)需携带时间戳和操作序列号,用于服务端验证顺序, 请求直达, 客户端直接和服务器感觉面试内容很不"八股", 答得稀里糊涂的, 上面的顺序不是面试提问顺序, 想起来什么说什么, 大家做个参考
查看11道真题和解析
点赞 评论 收藏
分享
评论
8
50
分享

创作者周榜

更多
牛客网
牛客企业服务