首页 > 字节跳动-后台开发面经
头像
betterpig
编辑于 2020-11-16 16:03
+ 关注

字节跳动-后台开发面经 内部员工回复

秋招经历以及更多分享,请点击--》 秋招总结 & 面经分享总贴

笔试(9.20) a2.6/4

一面(9.30) 80min

  1. 项目web服务器
    • 定时器容器
    • 压测结果,瓶颈在哪
  2. 事务特性
    • 持久型数据库怎么实现的
    • 数据库有哪几种日志
    • 分布式下还能满足ACID吗
    • 数据库有哪几种锁
    • 联合索引知道吗
  3. 进程和线程的区别
    • 协程有了解吗
    • 每个连接分配一个协程,开销会不会很大?要是每个连接分配一个内核级线程,可不可以
    • 内核级线程切换的开销
  4. 手撕:LeetCode 下一个排列 这题以前没碰到过,做了好久还是想不出来,本以为就这样凉了。面试官还说我笔试成绩不错...然后国庆之后居然收到二面通知了

二面(10.10) 45min

  1. IO模型
  2. 进程线程的区别
    • 进程间的通信方式,无名管道和有名管道的区别
    • 进程的状态转换
  3. 死锁及必要条件
    • 产生死锁的原因
    • 预防死锁
    • 银行家算法流程,怎么检测不安全状态
  4. TCP连接的建立和释放
    • 2MSL时间内收到了服务器的报文会怎样
    • 2MSL时间内,除了服务器的连接释放报文,还可能收到其他报文吗
  5. MySQL的查询流程(一面后刚好看了Redis和MySQL的原理,就模糊的打出来一些)
    • MySQL的日志系统
    • Redis的字符串怎么实现的
    • Redis的持久化机制
  6. 手撕:最长上升子序列 因为不久前做过,很快就写出来了。然后面试官问了时间复杂度,算法的思想,状态是什么意思。

二面完之后被通知说部门没hc了,也算是挂了吧,感觉一面手撕没做出来影响很大。那时候都不想面了,后面还是换了个部门鞭尸...

一面(10.14) 56min

  1. 介绍项目中的session功能
    • Sessionid的生成规则
    • 大量连接时sessionid可能重复?
  2. 讲一下C++的继承和多态
    • 虚函数
    • 动态绑定的底层原理
    • 析构函数是虚函数吗
  3. 指针和引用的区别
  4. Const和define的区别
  5. 源码到可执行文件的过程
    • 静态链接和动态链接的区别
  6. 多线程怎么实现同步
    • 死锁条件
  7. 介绍一下虚拟内存
  8. 进程调度算法
  9. TCP和UDP的区别
    • TCP的可靠传输
    • 拥塞控制算法
    • 快恢复会进入哪个阶段
  10. 事务特性
    • 数据库的索引是什么结构,为什么不用哈希表
  11. 手撕:分糖果,一个数组表示每个小孩的得分,要求给每个小孩至少分一个糖果,且得分高的小孩比相邻的小孩糖果数更多,求最少需要的总糖果数(没做过,讲了好几次思路都错了,后来面试官说了正确的思路,然后让我写出来了)

二面(10.14) 58min

  1. Epoll和其他两个IO复用的区别
    • 多线程的IO复用和单线程的IO复用有什么区别,为什么要用多线程呢
    • Redis为什么高效,为什么它不用多线程呢
    • 水平触发和边缘触发的区别和使用场景
  2. C++的多继承,怎么解决钻石模型
    • 虚函数
  3. 写了一个sql语句,问是否会走索引,整个语句的执行过程
    • Update关键字(不了解)
    • 事务特性,解释一下一致性
    • 事务的隔离级别
    • innodb可重复读级别要想解决幻读问题该怎么办(我答读是MVCC,写是加锁)
    • 写的时候是只加锁吗,加的什么锁
    • 写了sql语句,问会加什么锁(我答行独占锁和间隙锁)
    • 间隙锁的策略是什么,前开后闭?
  4. 讲一下操作系统的内存管理
    • 地址转换
    • CPU的缓存,为什么要设置L1 L2 L3缓存(面试官想考察程序的局部性原理)
  5. 手撕:实现阻塞队列(生产者消费者模型),且要求取的时候先取优先级最大的
    我先直接用优先队列,后面面试官让我再实现最大堆

三面(10.15) 46min

  1. 进程和线程的区别
    • 多线程怎么通信
    • 条件变量
    • 多线程之间怎么保证安全,用过哪种
    • 两个线程能在cpu中同时运行吗
  2. 滑动窗口
    • 如果一直没收到确认报文会怎样
    • 如果收到重复报文怎么办
  3. 手撕:输入一链表,将奇数位的节点升序排列放在链表前面,偶数位的节点降序排列放在链表后面,输出新的链表

字节的面试体验应该是面过的所有公司中最好的,包括前期通知,面试和后期的对接,都很舒服和及时。面试了这么多次,很多问题开始重复了,网络、操作系统,数据库问的是在真的多啊,我一开始还觉得sql有个印象就好,压根没去了解原理,后面才去根据问题搜原理。字节的面试还是挺有难度的,有固定问题也有深挖,尤其是算法题,都挺难的,要是没见过,我都是想不出来的。

更多模拟面试

全部评论

(12) 回帖
加载中...
话题 回帖

推荐话题

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

热门推荐