字节跳动 后端开发(27届秋招提前批)一面完整面经
基础信息
- 应聘公司:字节跳动
- 业务部门:番茄小说后端
- 岗位:Java后端开发工程师(27届校招)
- 面试轮次:技术一面
- 面试形式:线上视频面试,时长52分钟
- 面试官:后端资深开发工程师
一、自我介绍(3分钟)
本科计算机科学与技术专业,主修Java后端技术栈,在校独立完成图书借阅微服务管理系统,熟练使用SpringBoot、MySQL、Redis、MQ,做过数据库索引优化、并发限流落地,有两次校内实训项目经验,投递番茄小说业务,对内容分发、高并发场景比较感兴趣。
二、Java基础(15分钟)
- 详细讲一下JDK8的Lambda表达式,底层是什么原理?为什么可以访问局部变量?
- HashMap1.7和1.8的区别,红黑树转换阈值为什么是8和6?
- 线程池七大参数分别是什么,核心线程数一般怎么计算,你项目里是怎么配置的?
- volatile关键字的作用,能不能保证原子性?和synchronized的区别。
三、计算机网络(8分钟)
- HTTP/1.1、HTTP2、HTTP3各自优化了哪些痛点?
- HTTPS完整握手流程,TLS1.3做了哪些精简优化?
- TCP四次挥手,为什么最后客户端必须等待2MSL时长?
四、MySQL数据库(重点12分钟)
- InnoDB四大事务隔离级别,分别解决了什么问题,各自的底层实现?
- MVCC工作原理,redo log、undo log、binlog三者分工区别。
- 一条SQL查询很慢,你的完整排查思路,列举5种索引失效场景。
- 千万级数据表,分页深度优化方案。
五、Redis缓存(7分钟)
- Redis为什么速度很快?IO多路复用模型讲一下。
- RDB和AOF两种持久化方案优缺点,生产环境怎么搭配使用。
- 缓存穿透、击穿、雪崩三种问题,分别给出解决方案。
六、项目深挖(10分钟,图书借阅系统)
- 项目里哪些核心字段建了索引,设计思路是什么?
- 多人同时借阅同一本书,怎么避免超借,你用了什么锁?
- 如果后续用户量翻倍,借阅QPS上涨,你会怎么架构扩容?
- MQ消息丢失、重复消费问题,你做了哪些兜底处理?
七、手写算法(5分钟)
现场手写:LeetCode 1 两数之和,要求哈希解法,口述时间、空间复杂度,面试官追问边界测试用例。
八、HR常规问题+反问环节
- 为什么选择字节番茄小说这个业务线?
- 可以接受阶段性业务加班吗?
- 反问:团队目前技术栈迭代节奏、新人导师带教制度。
评论
?
参与讨论