热乎的字节跳动后端面经(四轮已拿offer)
个人情况
211本 工作两年半 一直在写C++
面试部门
字节跳动上海穿山甲团队
面试时间
10.20-11.14
一面
算法题:LRU缓存实现,要求set\get操作o(1)时间复杂度,leetcode有原题
技术问题:
- TCP滑动窗口
- 浏览器访问baidu.com的过程
- https原理
- epoll实现原理,和poll的对比
- 关于kafka的一个小问题
- TCP握手挥手细节(特别细...)
- MYSQL存储结构,主键索引和非主键索引在MYSQL中是如何存储、查找的
二面
算法题:一个N位数K,从N位中去掉M个数字,使剩下的数字最大,leetcode有类似题
技术问题:
- SQL聚合查询语法(这个忘了竟然- -||)
- 一个SQL语句的执行过程
- TCP拥塞控制
- rb-tree和b+-tree的区别,INNODB为什么用b+-tree
- 给了两个事务,问在各种隔离级别下的执行结果
- MVCC原理
- ACID的涵义,MYSQL是如何保证的
三面(偏业务面)
算法题:单链表排序
(聊了很长时间的项目经验,问了啥问题已经是想不起来了...)
技术问题:
- redis sds实现
- 缓存失效的几种场景,以及解决方案
四面(leader面)
算法题:二叉查找
技术问题:
- goroutine的实现
- 缓存雪崩、击穿的解决方案
- 如何排查线上程序问题
- protobuf为什么快
- epoll原理
- 分布式系统优缺点,一致性是如何保证的
- MYSQL存储结构
- CPU寻址过程,cache miss,TLB,页表...
- 在linux上执行ls操作系统做了什么(这个在6.S081上看过,刚好会,哈哈)
- 职业规划,愿意转go吗
总结感受
- 字节面试流程还是比较快的,HR比较积极
- 前两轮面试感觉不是特别好,http协议这块是真的不熟悉,说实话前两面给我不过我都是可以接受的,但leader面我觉得可以给自己打个90分
- 面试官人都很不错,状态很轻松
- 每一轮基本都是自我介绍,项目经验,技术问题,算法题这个流程,每轮时间1个小时,算法题半小时
- 字节社招的算法题基本都是leetcode中等以下难度的,我这四轮感觉是2easy 2medium
后记
昨天又面了滴滴的c++岗位,感觉也还不错,等下可能会再来一篇面经
#面经##社招##字节跳动##golang工程师#