字节后端开发面经

问了HR结果,已给口头offer,献上面经回馈牛客小伙伴们

一面:

1.IM系统用户登录怎么实现的?
2.登录状态是怎么保存的?session是怎么获取的?sessionid是怎么识别的?整个流程是什么样的?有没有考虑分布式session?
3.Redis的数据类型
4.Redis数据类型的底层数据结构
5.三次握手、四次挥手
6.Redis持久化机制
7.MySQL的InnoDB索引数据结构
8.哪些SQL的关键字会让索引失效
9.队列、栈、数组、链表
10.算法题:leetcode 92题

二面:

1.讲讲爬虫的构成
2.爬虫抓到的数据不清洗吗?不去重吗?
3.对爬虫有什么更多的了解吗?
4.Linux进程间通信机制
5.进程和线程的区别
6.线程私有的数据有哪些?(不是Java线程)
7.讲一下堆排序,每次调整的时间复杂度?堆排序是稳定的吗?(一开始说错了,应该是不稳定的,后面面试官问稳定的定义是什么)
8.哈希表的原理,怎么减小哈希表的冲突,怎么保证哈希表的并行读写
9.Kafka用过吗?说说Kafka的原理?怎么保证Kafka的高可用?Kafka怎么保证消息有序?
10.项目里的set实现点赞,zset实现关注,为什么?
11.zset底层实现?说一下跳表?节点的高度是多少?怎么决定节点的高度?
12.https了解吗?
13.中间人攻击知道吗?怎么做https的抓包?https怎么篡改?
14.虚拟地址到物理地址的映射过程
15.算法题:给一个数组,建一颗最小高度的二叉树(递归和非递归)

三面:

1.介绍一下做过的项目,哪些挑战性比较大,比较有难度的
2.IM项目怎么用Netty的,为什么要用Netty,长连接交互是怎样的
3.消息怎么存储,怎么发送,怎么知道消息已读和未读的
4.读了5条消息、又来5条消息,你是怎么去更新的,你的消息是幂等的吗?
5.项目里怎么用ES的,ES怎么支持搜索的
6.技术论坛网站的评论是怎么存储的
7.查询评论是在DB里扫表查询吗?怎么展示所有的评论?性能如何?想要查询更快可以做哪些优化?
8.结合缓存和DB的时候会出现哪些问题?要怎么解决?
9.快排了解吗?介绍一下快排?时间复杂度是多少?为什么会退化成O(n^2)?单链表可以做快排吗?快排最核心的逻辑是什么?写一下单链表快排
#面经##字节跳动##Java工程师##校招#
全部评论
楼主面的是哪个部门,感觉这个面试难度真是循循渐进,一面比一面难,楼主的项目应该不简单吧
1 回复 分享
发布于 2021-07-30 10:10
问下楼主,im项目开源的话,自己怎么去照着实现呢
点赞 回复 分享
发布于 2021-08-01 02:01
楼主三面完多久收到后续通知的?我也面的电商,三面完2天了还没动静
点赞 回复 分享
发布于 2021-07-30 21:15
楼主哪的电商? 我是北京电商 hr说周一发意向书
点赞 回复 分享
发布于 2021-07-30 20:17
想投递自己的同学可以私戳我呀 提前批马上就结束了!!!
点赞 回复 分享
发布于 2021-07-30 19:29
#华为22届秋招启动#  软件开发/测试/算法/等多个岗位,欢迎联系我内推,HR全程解答疑惑,微信Vicky_WY_Joy https://mp.weixin.qq.com/s/3F3L9zIrAVmRVb4c7W3N_A
点赞 回复 分享
发布于 2021-07-30 19:21
堆排序不是稳定的么?
点赞 回复 分享
发布于 2021-07-30 18:09
能够请问一下楼主你的两个项目是自己找的项目对着做的吗,菜鸡不知道咋准备项目?
点赞 回复 分享
发布于 2021-07-30 17:52
大佬太优秀了 有这样的同事太好了
点赞 回复 分享
发布于 2021-07-30 17:52
楼主二面完多久收到三面通知
点赞 回复 分享
发布于 2021-07-30 16:17
请问楼主什么部门呀?
点赞 回复 分享
发布于 2021-07-30 15:57
口头offer是意向书吗
点赞 回复 分享
发布于 2021-07-30 15:18
请问楼主的IM项目开源吗
点赞 回复 分享
发布于 2021-07-30 13:49
请问一下论坛项目可以分享一下地址吗
点赞 回复 分享
发布于 2021-07-30 13:48
楼主一面完了之后多久收到的offer?
点赞 回复 分享
发布于 2021-07-30 13:45
蟹蟹大佬,大佬真的强%%%%
点赞 回复 分享
发布于 2021-07-30 11:51
楼主二面进行了多久呢?
点赞 回复 分享
发布于 2021-07-30 11:49
好详细啊,楼主写的好认真
点赞 回复 分享
发布于 2021-07-30 11:47
感谢楼主分享!offer多多
点赞 回复 分享
发布于 2021-07-30 11:46
楼主各轮面试的间隔时间是多少天啊
点赞 回复 分享
发布于 2021-07-30 11:46

相关推荐

鼠鼠第一次投大厂面试,写面经攒人品:1. 个人介绍(2min)2. 挖项目(我跟后端相关的项目似乎只有抖音商城(字节跳动青训营),他一直挖我这个项目)3. 服务是怎么被发现的?(微服务)4. 假如你这个服务要更新,要更平滑,不让用户感到延迟,你会怎么做?- 维护两套环境(蓝:当前生产环境;绿:新版本环境)。- 新版本在绿环境测试通过后,切换流量到绿环境,蓝环境作为回滚备用。- 优点:零停机,用户无感知切换。5. 你输入一个url的处理过程6. 然后就开始写题了,面试官直接口述,输入一个数字,输出下一个最小的比这个数大的数字(重新排列)leetcode类似的题目是:[556. 下一个更大元素 III](******************************************************)这道题手撕还是相当紧张的,给我撕出来了7. 数据库事务是什么8. mvcc是什么,怎么实现的?9. 场景题,给你一个番茄小说的书,有十万订阅,如何快而准确的通知到所有订阅的人更新了(这里要求你去用具体的实现)我这里寄了,后面复盘的时候,应该是使用feed流,这个是用ai写的答案:- 推模式 (Fanout-On-Write/Writes):  - **操作时机:** 当关键事件(如新章节发布)发生时**立即**执行。  - **目标用户:** **核心活跃粉丝(数量相对较小)**。  - **动作:** 将事件**直接写入**这些目标粉丝的个人 **收件箱(Inbox Feed)**(一个按时间排序的数据存储)。用户访问自己的 Feed 流时,直接从这个收件箱拉取即可,延迟极低。- 拉模式 (Fanout-On-Read):  - **操作时机:** 当用户主动请求访问 Feed 流时执行。  - **目标用户:** **非核心粉丝(长尾粉丝,数量大)** 或 触发推模式的粉丝,在访问 Feed 时可能需要拉取更长时间范围内的数据。  - **动作:** 后端服务在用户请求时,**实时聚合**用户所关注对象(收藏的书籍)的 **发件箱(Outbox Feed)** 数据(包含所有发布事件),按时间排序后返回给用户。这需要访问多个发件箱(每个收藏的书一本)并聚合。- **「推拉结合」的关键:** **合理区分「核心粉丝」与「长尾粉丝」**,只对核心粉丝进行实时写入。  **关键组件与流程详解:**  1. **事件源 (Event Source):**     - **新章节发布:** 最核心的事件源。携带 `bookId`, `chapterId`, `publishTimestamp`。     - **粉丝关系变更:** 用户收藏 (`favor`) 或取消收藏 (`unfavor`) 一本书。携带 `userId`, `bookId`, `action`, `timestamp`。  2. **事件总线 (Event Bus):**     - 使用高吞吐、可靠的消息队列如 Kafka/Pulsar。接收上述事件并进行持久化,供下游消费者订阅。  后面是就是针对十万用户的进行**精准界定“核心活跃粉丝” (`HotFanCache`):**,查询优化,**高性能存储与分片:**10. 反问,问了业务是什么,技术栈是什么,然后和面试官聊的蛮开心的,面试官夸了基础好,知道稳了10min之后,hr通知2面.1面成功.
点赞 评论 收藏
分享
6.9一面:手撕:打家劫舍实习拷打:1、选择什么结构存储日志数据,存储在哪里的2、日志记录请求量大概多少,如果高并发场景下可以用什么进行优化3、zset查询命令八股拷打:(忘记录音了 只记住部分)1、说一下mysql存储引擎有哪些2、mysql索引有哪些3、mysql索引失效场景4、update s set x=5 where id>5 会用什么锁?临键锁是怎么锁起来的?如果是按x查询呢?5、当前读和快照读6、快照读为什么无法防止幻读的发生7、mysql事务隔离级别8、描述一下一条sql语句查询的过程9、mysql为什么要分为server层和存储引擎层6.10二面:实习/项目拷打:1、项目和实习的来源?2、介绍一下实习中做了哪些事情?你认为实习与在学校做的项目有什么区别?3、简历上写了实习中排查优化30%,这个数据怎么得到的4、举例子说明一下你做的优化对bug排查效率的提升?运维人员如何去排查的?5、如何实现的日志记录审计(aop 线程池)6、记录的日志数据存储在哪里了?怎样存储的?7、冷数据都直接存储在mysql会导致性能问题,有没有其他更好的方法?mysql对应表上打了哪些索引?8、系统每天的请求量有多少?9、热数据怎样存在redis中的?利用zset能够快速根据key(时间戳)进行时间范围查询日志,那如果是按用户id查询呢?你用redis存储日志的热数据,如何处理redis宕机的情况?10、项目/实习中多线程情况的解决,举例子说一下八股:1、介绍一下hashmap?2、如果此时一个对象没有重写equals方法,作为key,put到hashmap中,会产生什么问题?3、如何实现把hashmap的数据按key排序,可以利用其他的数据结构也可以在hashmap上实现,有哪些方法?手撕:lc 560其他:对工作地点有什么要求吗,多久到岗,介绍一下acm经历………..6.12三面八股1、redis是单线程的为什么还这么快?2、讲一下IO多路复用底层原理?(不会3、tcp和udp区别?怎么理解udp可以广播/一对多,在tcp协议基础上我开多个tab网页不是一对多吗?4、输入一个url链接访问网页的过程?讲一下dns域名解析过程?手撕1、有红、黄、蓝三种颜色的球,峡谷有n步,每一步放一个球。当连续的三个球的颜色是红、黄、蓝的某种排列(如红黄蓝、红蓝黄、黄红蓝等)时,会发生爆炸。问有多少种放置球的方式,使得不会发生爆炸。解:三维dp记录状态,由前两格状态后推。2、给你一个链表,奇数节点正序,偶数节点逆序,且奇数节点和偶数节点没有关系,时间复杂度O(n)、空间复杂度O(1)实现将链表变成总体有序。解:先拆分链表为奇数链表和偶数链表,再反转偶数链表,再把两个有序链表合并为一个有序链表。(感觉是多个力扣题杂交?)其他1、在生活/学习/工作中,有遇到哪些问题看法是和别人不一样的?6.16hr面全程十分钟先是自我介绍然后就是几个简单的问题:1、多久可到岗 出勤时间2、介绍一下实习经历3、有没有拿过奖学金4、平时通过什么学习技术5、是否有转正诉求反问:1、部门体系结构(不方便说2、薪资待遇3、面试结果多久出(回答一周内,说是周三周四可询问offer4、转正考核方式面试完过了一会,面试官打电话询问base意愿6.17上午 offer
点赞 评论 收藏
分享
一面:全程50min,八股30min,算法20min1. innodb引擎的rr级别,age是普通索引,id是数据库主键,递增字段。事务A:begin;T1 select * from user where age = 20;(2个结果)T3 select * from user where age = 20;T4 update user set name = 'name1' where age = 20;T5 select *from user where age = 20;comit;事务B:T2 begin insert into user values('name2', 20); comit。请你分别告诉我T3-T5各有几个结果?2、3、32. TIME_WAIT 状态原因?ack至少丢失一次;防止建立历史连接3. 设计一个抽奖系统,每个用户可以抽 m 次,奖品个数为 n,每个用户最多只能中奖一次,大流量场景下如何设计,可以支持百万级并发抽奖?从接口、逻辑、扩展方面依次回答了。4. 算法:130. 被围绕的区域======================================================================二面:全程 40min,项目 15min,算法 20min,反问 5min1. 自我介绍2. 说下实习干了啥?大致介绍了下,然后说的实习难点3. 接口重构做了什么?说了过程,说了上线策略4. 你们后端服务大致拆分了几个服务?为什么那么拆分?5. 慢 SQL 治理的过程和原理?6. 其他记不清了7. 算法:LCR 084. 全排列 II。中间看成了全排列,5 分钟秒掉结果调试半天没有输出,经提示有重复数字。抠了半天抠出来了======================================================================三面:总共 70min,实习+项目+八股 20min,算法 50min1. 自我介绍?2. 实习工作?3. Netty 为什么快?4. 详细说下 NIO?5. 各种其他问题,记不清了6. 算法:31. 下一个排列总结:栽在三面了,唯一一次原题没写出来。当时写 hot100 就没细看,感觉这题有点难,结果唯一一次出原题我还没写出来!
查看11道真题和解析
点赞 评论 收藏
分享
评论
24
182
分享

创作者周榜

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