4.2字节后端一面

📍面试公司:字节跳动
🕐面试时间:2026.4.2
💻面试岗位:后端实习生
❓面试问题:
1.controller/service/repository三层架构的功能
2.各层怎么交互(答的依赖注入)
3.鉴权怎么实现(说用的spring security套件,给予身份)
4.缓存和数据库数据一致性怎么解决(回答的先改数据库在删除缓存)
5.为什么不先删缓存(好像两种方式都有一定问题,但是后删缓存问题小一点)
6.缓存删除失败了怎么办(应该想考消息队列,但是鼠鼠还真没想过
7.缓存有ttl吗,大量key同时过期怎么办(缓存雪崩呗,鼠鼠看过的但是只答了ttl加随机时间和双key策略)
8.讲一下mysql索引
(回答了主键索引和唯一索引,b+树实现)
9.为什么用b+
(回答的树高度低,查询次数少开销少)
10.进程和线程的区别?线程什么哪些资源可以共享哪些不行(os原理,基本没怎么复习,答的一坨)
11.死锁条件和解决方式
(四个条件和死锁预防,死锁检测,死锁接触)
12.cas和普通加锁的优劣(看的时候没认真看,只记得cas有aba问题)
13.互斥锁,自旋锁区别(完全没看自旋锁)
14.tcp,udp区别
15.tcp为什么三次握手四次挥手
16.手撕,数组的最大连续子数组和(leetcode原题,五分钟撕了,但是让讲就有点捋不清了,就说了当前缀和为负数了就抛弃前缀,重新开始子数组)
17.脑筋急转弯:100只老虎和一只羊,老虎吃了羊就变羊,最后羊会不会被吃(好像是考虑奇偶情况,但是鼠鼠想的就是吃了羊等于自己成猎物了,大家应该都僵持下去下去
18.反问有什么不足:基础不扎实,比如os,数据库,网络,编程语言(都没问我Java,过程中问我c++熟悉不,我技术栈都没敢写肯定不敢说熟悉啊),算法(撕的快但是讲不清,感觉鼠鼠是死记硬背),不是这不是基本今天全问的都是不扎实吗
🙌面试感想:很常规,不难,但是鼠鼠真的太菜了毕竟第一次,回答的还算流利了,以后再接再厉
#还记得你第一次面试吗?# #字节#
#发面经攒人品#
全部评论
补一下4.的缓存一致性解决: 在开发过程中,先修改数据库再删除缓存,也会有短暂脏数据时间段,即在数据库修改过程中,其他线程读取缓存仍然命中,会返回脏数据,但是由于修改操作时间极短,只有极少线程会读取到缓存中的脏数据,在互联网业务下属于可接受范畴;反之先删除缓存,再修改数据库,可能会出现其他线程由于命中缓存失败,前往数据库构建缓存,由于数据库的修改还未完成,读取到脏数据构建缓存,该缓存在后续ttl中一直存在返回脏数据,导致前端请求数据大量出错。 总结:两种方式都会有返回脏数据的可能,但是后删只会有短暂时间(线程修改数据库时间)业务错误,先删缓存可能有整个ttl时间业务错误
3 回复 分享
发布于 04-04 12:01 四川
大佬 考虑我司不 考虑的话可以看我主页帖子~
点赞 回复 分享
发布于 04-22 12:00 上海
拼多多招2027届实习生啦,https://careers.pddglobalhr.com/campus/intern?t=f9hJ7AB4rz。
点赞 回复 分享
发布于 04-08 13:04 上海
uu什么时候投的简历
点赞 回复 分享
发布于 04-07 18:09 安徽
已老实
点赞 回复 分享
发布于 04-05 22:06 四川
佬方便透露一下部门吗
点赞 回复 分享
发布于 04-04 17:38 湖南
写的很好,总结的
点赞 回复 分享
发布于 04-03 23:08 北京
虎羊其实就类似递推的一个关系,从1开始枚举思考一下就行
点赞 回复 分享
发布于 04-03 22:37 湖北
基础还是挺多的
点赞 回复 分享
发布于 04-03 22:21 辽宁
拼多多招27届实习生啦 https://careers.pddglobalhr.com/campus/intern/detail?t=dRvUVvcTiA
点赞 回复 分享
发布于 04-03 17:23 上海
面完多久给结果
点赞 回复 分享
发布于 04-03 10:52 北京
蹲后续
点赞 回复 分享
发布于 04-03 08:54 天津

相关推荐

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道真题和解析
点赞 评论 收藏
分享
评论
16
88
分享

创作者周榜

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