字节后端面经(已OC)

第一次在牛客发面经,发面经攒人品,希望能够帮助到有需要的牛友,不足之处请各位牛爷爷海涵

bg

某邮本硕,已有一段小厂实习+一段大厂实习,都是后端开发

一面

  1. 自我介绍
  2. 让介绍实习项目,开始吟唱。因为实习期间做的业务比较复杂,概念多,短时间内确实很难理清,面试官直接说他没怎么搞懂,但是不妨碍从项目引出八股~
  3. 你的业务中使用分布式锁的原因是什么?
  4. 如何解决redis分布式锁的单点故障问题?
  5. 除了redis的分布式锁,你还知道其他哪些分布式锁的实现?
  6. zookeeper实现分布式锁的原理?
  7. 你在xx(大厂)用到了RocketMQ,在xx(小厂)用到了kafka,那你说下两者的区别?
  8. 你说在消费者端实现了幂等性,如何实现的?
  9. 发生重复消息的场景是什么?
  10. redis持久化机制?
  11. 手撕:LRU
  12. 手撕完了让讲解代码,鼠鼠用的循环双链表+哈希表实现,面试官问必须用循环双链表吗,可以只用双链表吗,鼠鼠有点懵没get到意思,胡言乱语说循环双链表在O(1)时间复杂度能定位到尾巴,面试官说双链表+tail指针也行啊,鼠鼠立马表示赞同
  13. 反问环节

二面

  1. 自我介绍
  2. 你在xx实习期间,遇到过最大困难是什么?让结合业务背景+解决方案+用到的技术进行回答,讲解了比较久
  3. 看你实习期间用到的东西很多,那你redis和MQ哪个比较熟?鼠鼠选的MQ
  4. 又让说kafka和rocketmq区别,鼠鼠从应用场景、核心概念、架构上吟唱了一遍
  5. 手撕:线程安全的单例模式
  6. 针对手撕代码提问
  7. 为什么使用private修饰构造器?
  8. 除了private,还有哪些修饰符?
  9. 为什么getInstance()方法要写成static的?不写成static的会怎样?
  10. synchronized关键字为什么修饰方法?还能怎么用?有什么区别?
  11. 反问环节

三面

  1. 自我介绍
  2. 针对两段实习经历分别提问,都是业务强相关的问题
  3. 询问能到base意愿、到岗时间、实习时长
  4. 手撕:课程表
  5. 手撕完面试官让讲解代码,讲完后面试官说没什么问题,然后说今天就先到这,没让鼠鼠反问,吓得鼠鼠以为凉了

总结

已oc;

手撕真的很重要,字节三面技术面都会手撕,没撕出来真的会G;

LRU被考察概率是真高啊,面腾讯、饿了么、字节都考了,牛友们可千万别用个LinkedHashMap就完事了,面试时手撕肯定让书写双链表+hash表实现;

祝愿看到此面经的牛友都能面面都过,offer拿到手软Java#牛客AI配图神器#

#后端##字节#
全部评论
手撕环节是在本地ide吗
1 回复 分享
发布于 03-20 14:07 辽宁
太🐄了
点赞 回复 分享
发布于 03-20 14:24 江苏
何人碰瓷我大龙🧱😠😡😤
点赞 回复 分享
发布于 03-20 22:45 重庆
佬,你这个小厂在ssob上写的多少人呀?纯开发队伍多少呢?
点赞 回复 分享
发布于 03-20 23:27 四川
接好运接好运接好运
点赞 回复 分享
发布于 03-20 23:41 广东
课程表是什么
点赞 回复 分享
发布于 03-20 23:57 吉林
🐮
点赞 回复 分享
发布于 昨天 09:35 浙江
北邮✌️,去哪个部门啊?在哪个工区啊
点赞 回复 分享
发布于 昨天 11:20 北京
佬 啥部门java多啊
点赞 回复 分享
发布于 昨天 11:28 黑龙江
hr面过后大概多久oc的啊
点赞 回复 分享
发布于 昨天 11:59 上海

相关推荐

03-19 09:26
门头沟学院 Java
### **一、项目深挖**1. **项目技术亮点**     - **校园美食会项目**:基于Redis实现分布式锁解决超卖问题,使用乐观锁处理一人多单场景,通过双拦截器优化Token刷新逻辑。   - **动态线程池组件**:基于Redis发布订阅机制实现线程池参数动态调整,结合定时任务上报核心参数。2. **短信登录流程**     - 用户输入手机号→后端生成验证码并存储Redis(Key为手机号,Value为验证码)→调用阿里云短信服务发送→用户提交验证码后校验→未注册用户自动创建账号。3. **Token刷新逻辑**     - 拦截器拦截所有请求,校验Token有效性后刷新Redis中Token的过期时间,保障用户持续活跃状态。4. **分布式锁优化**     - 单机环境使用`synchronized`锁用户ID;分布式场景改用Redis实现可重入锁,通过Hash结构记录线程标识和重入次数。---### **二、基础技术问题**1. **HTTP vs HTTPS**     - **HTTP问题**:明文传输存在安全风险(窃听、篡改)。     - **HTTPS优化**:通过SSL/TLS协议加密,结合非对称加密(证书验证)和对称加密(数据传输)提升安全性。2. **跨域问题(CORS)**     - 跨域触发条件:协议、域名、端口不一致。解决方案未深入讨论,面试官提示需补充JSONP、CORS或反向代理等方案。3. **ThreadLocal应用**     - 用于拦截器中用户信息传递,通过线程隔离的ThreadLocalMap存储数据,避免多线程竞争。---### **三、Redis相关**1. **数据结构选择**     - Token存储使用String类型(Key为Token,Value为用户信息),设置过期时间实现自动清理。2. **分布式锁实现**     - 通过Redis的SETNX命令和Lua脚本保证原子性,记录线程标识和重入次数支持可重入性。---### **四、MySQL与索引**1. **联合索引最左匹配原则**     - **场景1**:`WHERE b=1 AND a=2`(联合索引(a,b,c))→ **命中索引**(优化器自动调整顺序)。     - **场景2**:`WHERE a>1 AND b=2` → **索引失效**(a范围查询后b无序)。     - **场景3**:`WHERE a=1 AND b>2` → **命中a、b索引**(a等值查询后b有序)。2. **SQL执行顺序**     - 优先级:`FROM > WHERE > GROUP BY > HAVING > SELECT > ORDER BY > LIMIT`。---### **五、网络与协议**1. **WebSocket应用**     - 用于商家接单实时通知,对比HTTP轮询优势:长连接、低延迟、服务端主动推送。这个地方被拷打了websocket底层实现以及如果用http来实现要websocket相同的功能要怎么实现?还问了服务端能向客户端发http请求吗?---### **六、反问环节**- 候选人提问字节技术氛围,面试官简要介绍业务方向(未详细记录)。---### **评价与建议**- **优势**:项目设计合理,对分布式锁、Token机制等场景理解较深。  - **待提升**:跨域解决方案、服务端主动通知实现(如WebSocket底层机制)、索引失效场景判断需更严谨。  - **面试难度**:中等偏上,侧重项目落地能力和底层原理。
查看12道真题和解析
点赞 评论 收藏
分享
评论
10
34
分享

创作者周榜

更多
牛客网
牛客企业服务