拿到字节offer已经有两周多了,目前手头工作也交接的差不多了。今天对字节面试过程做个总结,希望能够帮助到想去大厂的人。


时间介绍

  • 岗位是运维研发岗
  • 周日11-22 20.32 接到杭州电话约我11.24 20:00进行面试
  • 周二11-24 18:00 还是杭州电话,跟我说面试官临时有事,面试推迟到12-01 20:00
  • 周五11-27 16:08 北京电话跟我说面试官有事面试推迟到12-03 20:00。额有点崩溃,跳票两次。。
  • 周四12-03 20:00~21:15 视频一面,使用飞书
  • 周五12-04 13:30 HR告诉我一面通过,约到12-06 20:00进行二面
  • 周日12-06 16:40 面试官有重要会议,二面推迟到12-07 20:00
  • 周一12-07 20:00~21:15 视频二面,使用牛客网视频面试。
  • 周一12-07 22:15 接到hr电话得知二面通过,约在12-15 21:00进行三面(跨度有点长,因为面试官晚上时间都约完了,另外我想做个充足的准备)
  • 周二12-15 21:00-21:45 视频三面,使用牛客网视频面试。
  • 周四12-17 19:50 接到hr电话,技术面通过,约在12-20 15:00进行hr面
  • 周日12-20 15:00~15:30+ hr面,使用飞书
  • 周二12-22 20:38 hr加我微信,告诉我让我准备薪资流水等材料
  • 周三12-23 12:20+ 回复hr相关材料
  • 周五12-25 19:04 收到offer邮件,那天是圣诞节。。

一面

一面主要技术点如下

  • java内存模型,运行时数据区
  • synchronize锁升级过程及背后的原理(对象头等等);升级的原因(自旋锁、重量级锁优劣)
  • 工作中常用的垃圾收集器,收集算法,G1收集过程(卡表、三色标记)
  • 限流相关算法,实现等
  • 缓存三大问题,布隆过滤器实现原理
  • 负载均衡实现方式,主要说了常用的集中ng,lvs,haproxy
  • 线程池相关知识,如果让你设计一个线程池有啥需要注意的地方
  • http协议版本,不同版本的区别。405、502状态码含义
  • tcp三次握手,四次挥手介绍,其中还问了timeout原因-网络知识薄弱没get到点。
  • 类加载机制,双亲委派模型
  • springboot启动过程,配置文件加载顺序
  • 如何实现一个类似springboot定时任务一样的功能@Schedule
  • spring循环依赖问题
  • 常见的排序算法,堆排序时间复杂度
  • 算法 - LeetCode 162. 寻找峰值

二面

二面主要技术点如下

  • kafka数据一致性如何保证的
  • kafka在项目中的用途,其他mq介绍与对比
  • redis持久化方式,持久化的过程
  • mysql相关:索引、mvcc、事务隔离级别、主键索引与普通索引谁快
  • 设计一个强一致性的消费模型
  • es集群介绍,主节点选举过程(这个与我项目经历有关)
  • linux中的load含义,其中队列具体指的是啥队列
  • java程序性能问题排查,主要考察jdk自带命令,没事可以都看一遍
  • arthas动态类替换实现原理,Instrumentation、asm等
  • 算法 - LeetCode 198. 打家劫舍 变种(变了个描述。。。)

三面

主要问题列表

  • 为何要选择这个职位
  • 消息队列对比,如果实现数据一致性。rocketmq事务背后的实现原理
  • redis高可用集群相关知识,自由发挥
  • 接触过的监控系统,介绍如何设计一个监控系统,自由发挥
  • 缓存击穿、穿透、雪崩,自由发挥
  • 没有算法题,可能因为我连leetcode easy都写不出来的原因吧。。

HR面

  • 个人介绍
  • 最有成就的项目是哪个&介绍
  • 之前公司的离职原因
  • 当前薪资福利等
  • 当前在团队中的角色
  • 面试中确认了手机号能加微信,后续也是通过微信进行联系的



更多内容详见微信公众号:Python研究所

字节跳动面试总结_微信