字节跳动 后端开发(27届秋招提前批)一面完整面经

基础信息

  • 应聘公司:字节跳动
  • 业务部门:番茄小说后端
  • 岗位:Java后端开发工程师(27届校招)
  • 面试轮次:技术一面
  • 面试形式:线上视频面试,时长52分钟
  • 面试官:后端资深开发工程师

一、自我介绍(3分钟)
本科计算机科学与技术专业,主修Java后端技术栈,在校独立完成图书借阅微服务管理系统,熟练使用SpringBoot、MySQL、Redis、MQ,做过数据库索引优化、并发限流落地,有两次校内实训项目经验,投递番茄小说业务,对内容分发、高并发场景比较感兴趣。
二、Java基础(15分钟)

  1. 详细讲一下JDK8的Lambda表达式,底层是什么原理?为什么可以访问局部变量?
  2. HashMap1.7和1.8的区别,红黑树转换阈值为什么是8和6?
  3. 线程池七大参数分别是什么,核心线程数一般怎么计算,你项目里是怎么配置的?
  4. volatile关键字的作用,能不能保证原子性?和synchronized的区别。

三、计算机网络(8分钟)

  1. HTTP/1.1、HTTP2、HTTP3各自优化了哪些痛点?
  2. HTTPS完整握手流程,TLS1.3做了哪些精简优化?
  3. TCP四次挥手,为什么最后客户端必须等待2MSL时长?

四、MySQL数据库(重点12分钟)

  1. InnoDB四大事务隔离级别,分别解决了什么问题,各自的底层实现?
  2. MVCC工作原理,redo log、undo log、binlog三者分工区别。
  3. 一条SQL查询很慢,你的完整排查思路,列举5种索引失效场景。
  4. 千万级数据表,分页深度优化方案。

五、Redis缓存(7分钟)

  1. Redis为什么速度很快?IO多路复用模型讲一下。
  2. RDB和AOF两种持久化方案优缺点,生产环境怎么搭配使用。
  3. 缓存穿透、击穿、雪崩三种问题,分别给出解决方案。

六、项目深挖(10分钟,图书借阅系统)

  1. 项目里哪些核心字段建了索引,设计思路是什么?
  2. 多人同时借阅同一本书,怎么避免超借,你用了什么锁?
  3. 如果后续用户量翻倍,借阅QPS上涨,你会怎么架构扩容?
  4. MQ消息丢失、重复消费问题,你做了哪些兜底处理?

七、手写算法(5分钟)
现场手写:LeetCode 1 两数之和,要求哈希解法,口述时间、空间复杂度,面试官追问边界测试用例。
八、HR常规问题+反问环节

  1. 为什么选择字节番茄小说这个业务线?
  2. 可以接受阶段性业务加班吗?
  3. 反问:团队目前技术栈迭代节奏、新人导师带教制度。
添加评论
点赞收藏
点踩分享查看原文
评论
?
参与讨论