字节二面 今日头条后端面经

  1. 项目选个点讲 - 缓存穿透方案
  2. 分布式锁为什么用Redis实现?讲一下Redisson原理
  3. 不能用MySQL实现锁吗?
  4. 用 RocketMQ干啥了?
  5. 和 Kafka,RabbitMQ对比
  6. RocketMQ 为什么会重复消费
  7. RocketMQ 怎么保证消息不丢失?(同步发送 + 主从同步双写 + 同步刷盘)
  8. RocketMQ 为什么高性能?(刷盘策略 + 零拷贝 + CommitLog)
  9. TCP连接,A->B, B进程挂了,讲一下会发生什么
  10. 一个无限长的输入流,怎么保证取5个数的随机性相同?
  11. 52张牌,怎么洗牌保证乱序最大化?- 某张牌和这张牌后面的交换
  12. 力扣 复原IP地址 (Medium)
  13. 力扣 找两个排序数组的第k大的值 (Hard) 需要用logN复杂度
#字节跳动##今日头条##软件开发2024笔面经#
全部评论
10蓄水池抽样
点赞 回复 分享
发布于 2024-04-20 09:30 山西
大佬,一次面三道题吗
点赞 回复 分享
发布于 2024-03-28 17:32 浙江

相关推荐

1. 个人背景与现状:你目前是在实习为什么还在职但也在寻求其他机会?部门是否已明确是否有转正席位?2. 项目经验:你提到在负责询价域和库存域,能否详细说明这个项目的整体背景、服务架构、团队协作情况,以及你在其中的具体角色?3. 技术实现细节:在询价链路优化中,你提到通过冗余字段减少多表关联,那具体在哪个主表上增加了哪些字段?这些字段是如何与原表保持一致的?4. 数据一致性:增加冗余字段后,如何保证主表与详情表的数据更新一致性?是否涉及多表事务?事务是如何实现的?底层原理是什么?5. 事务回滚机制:事务回滚是自动的吗?是否需要手动编写回滚逻辑?回滚后如何确保数据恢复到原始状态?是否有监控或告警机制?6. 缓存策略:你们使用的是旁路缓存模式,那缓存一致性如何保证?是强一致还是最终一致?为什么选择这种策略?7. 缓存更新顺序:在缓存更新时,是先删缓存再更新数据库,还是先更新数据库再删缓存8. Redis部署架构:你们的Redis是主从架构还是集群?集群是如何实现的?哈希槽数量是多少?请求是如何映射到具体节点的?9. Redis读写路由:所有读请求是否都优先走主节点?读请求在集群中是如何分布的?10. Redis集群通信:集群节点之间通信使用什么协议?如何实现心跳检测和新节点发现?数据同步的协议是什么?11. 服务网关与注册中心:你们使用的是Spring Cloud Gateway,它是如何实现服务发现和注册的?注册中心(如Nacos)中的服务信息是如何持久化的?12. 用户体系与权限:在智能迎新助手项目中,用户体系是如何与平台绑定的?绑定过程使用了什么协议?平台是否提供回调通知账号注销状态?13. RAG系统:你们的RAG系统是自研的吗?使用了哪些外部组件?向量数据库从Pinecone迁移到MILVUS的原因是什么?14. 检索策略优化:迁移后你们支持了哪些检索类型?是否引入了重排(re-ranking)策略?15. 算法题:给定一个二叉树,每个节点都有指向父节点的指针,要求在O(1)空间复杂度下找到两个节点的最近公共祖先,你的解题思路是什么?如何处理不相交的情况整体不算难 但是一面面试官和二面面试官都问的挺细的 会一直顺着你的思路追问下去 还好顶住压力了最后算法题想了一会其实就是链表相交的问题,表述完思路直接写出来了
查看15道真题和解析
点赞 评论 收藏
分享
4.14投递,4.30被捞,打电话约面1. 自我介绍2. Java的JDK跟JVM是什么关系3. 基本数据类型long有几个字节4. Java里的Integer和int类型相比有什么优点5. List比如ArrayList后面跟的泛型,能用基本数据类型int吗?6. Java里的抽象类是什么? 抽象类是为了解决什么问题产生的?7. 抽象类跟接口有什么区别?能不能完全用接口取代抽象类?什么情况下不能用接口取代抽象类?8. Java的泛型是什么?泛型解决了什么问题?9. 反射是什么?你在平时的学习或者简历里的两个项目里用过反射吗?11. 刚才你说了ArrayList,还用过什么集合吗?12. ArrayList的底层的数据结构13. 往ArrayList中间插入一个元素,时间复杂度是多少?n是什么含义?14. LinkedList的底层数据结构,它的插入和查找时间复杂度分别是多少?这里的1代表什么含义?15. 用过Map吗?介绍一下HashMap的底层实现16. 你项目里用的Java是哪个版本?Java17版本的HashMap插入一个元素的时间复杂度,以及查找的时间复杂度17. 刚才说的ArrayList、LinkedList、HashMap这些集合是线程安全的吗?18. 什么叫线程安全?19. 怎么理解脏数据?20. 如果要把ArrayList变成线程安全的,可以怎么做?(答了加锁,但是扯到乐观锁了,后面就狠狠拷打ArrayList怎么加乐观锁)21. 什么叫乐观锁?22. 以ArrayList举例,CAS的Compare是比较的什么和什么?23. 读取这个值的动作本身有锁吗?24. 如果比较之后两个值不等呢?25. 这种实现方式在ArrayList的任意操作下都满足线程安全的要求吗?26. 比如现在想往数组末尾追加一个元素,在这种实现下应该怎么实现?27. Java的GC有了解吗?以你项目里用的Java17版本为例,它的主要GC算法是什么?28. GC怎么知道某一个对象应该被回收?29. 你的两个项目都是后端服务跑在服务器上,会跟前端有交互,前后端交互是用的什么协议?(不知道)30. 前端怎么找到对应的后端服务?比如用户有你的前端页面,怎么才能访问到你的后端服务?(应该是DNS,但是我想着我的项目都在本地跑的没有域名啊啊,就把DNS,ARP,TCP,HTTP,TLS全吟唱了一遍)31. SSE是建立在TCP之上的,TCP本身也是流式传输,也有长连接,为什么还要用SSE而不是直接用TCP?(完全忘了)32. MySQL的索引分类33. B+树的叶子节点和非叶子节点分别存的是什么?34. 如果建了100个索引,这100个索引都在同一棵B+树上吗?35. 索引本身有什么用途?索引的结构是什么36. 没有索引,数据库能不能用?37. MySQL的事务是什么?38. 事务的原子性是怎么实现的?39. 比如我在同一个事务里插两条数据,第二条插入失败了,怎么通过undo log去保证原子性?40. 如果在执行回滚操作的时候断电了,重新启动MySQL进程后,去查这个记录能查到什么?41. MySQL的隔离级别是什么?42. 可重复读是什么含义?43. Redis在你的第二个项目里存的是什么?用的是什么数据结构?key和value分别是什么?44. 通过key查找String类型的数据,时间复杂度是多少(以为是二分答了logn,,,)45. Redis你还用过其他的数据结构吗?46. 你用的是哪个MQ?为什么使用MQ?手撕:lc437二叉树路径总和反问:1.部门干啥的:对接上游,发布广告2.后续流程:不清楚还好录音了,不然都不知道自己错的那么离谱八股就是背了忘忘了背,什么时候才是个头啊
点赞 评论 收藏
分享
评论
7
56
分享

创作者周榜

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