秋招经历以及更多分享,请点击--》 秋招总结 & 面经分享总贴
笔试(9.20) a2.6/4
一面(9.30) 80min
- 项目web服务器
- 定时器容器
- 压测结果,瓶颈在哪
- 事务特性
- 持久型数据库怎么实现的
- 数据库有哪几种日志
- 分布式下还能满足ACID吗
- 数据库有哪几种锁
- 联合索引知道吗
- 进程和线程的区别
- 协程有了解吗
- 每个连接分配一个协程,开销会不会很大?要是每个连接分配一个内核级线程,可不可以
- 内核级线程切换的开销
- 手撕:LeetCode 下一个排列 这题以前没碰到过,做了好久还是想不出来,本以为就这样凉了。面试官还说我笔试成绩不错...然后国庆之后居然收到二面通知了
二面(10.10) 45min
- IO模型
- 进程线程的区别
- 进程间的通信方式,无名管道和有名管道的区别
- 进程的状态转换
- 死锁及必要条件
- 产生死锁的原因
- 预防死锁
- 银行家算法流程,怎么检测不安全状态
- TCP连接的建立和释放
- 2MSL时间内收到了服务器的报文会怎样
- 2MSL时间内,除了服务器的连接释放报文,还可能收到其他报文吗
- MySQL的查询流程(一面后刚好看了Redis和MySQL的原理,就模糊的打出来一些)
- MySQL的日志系统
- Redis的字符串怎么实现的
- Redis的持久化机制
- 手撕:最长上升子序列 因为不久前做过,很快就写出来了。然后面试官问了时间复杂度,算法的思想,状态是什么意思。
二面完之后被通知说部门没hc了,也算是挂了吧,感觉一面手撕没做出来影响很大。那时候都不想面了,后面还是换了个部门鞭尸...
一面(10.14) 56min
- 介绍项目中的session功能
- Sessionid的生成规则
- 大量连接时sessionid可能重复?
- 讲一下C++的继承和多态
- 虚函数
- 动态绑定的底层原理
- 析构函数是虚函数吗
- 指针和引用的区别
- Const和define的区别
- 源码到可执行文件的过程
- 静态链接和动态链接的区别
- 多线程怎么实现同步
- 死锁条件
- 介绍一下虚拟内存
- 进程调度算法
- TCP和UDP的区别
- TCP的可靠传输
- 拥塞控制算法
- 快恢复会进入哪个阶段
- 事务特性
- 数据库的索引是什么结构,为什么不用哈希表
- 手撕:分糖果,一个数组表示每个小孩的得分,要求给每个小孩至少分一个糖果,且得分高的小孩比相邻的小孩糖果数更多,求最少需要的总糖果数(没做过,讲了好几次思路都错了,后来面试官说了正确的思路,然后让我写出来了)
二面(10.14) 58min
- Epoll和其他两个IO复用的区别
- 多线程的IO复用和单线程的IO复用有什么区别,为什么要用多线程呢
- Redis为什么高效,为什么它不用多线程呢
- 水平触发和边缘触发的区别和使用场景
- C++的多继承,怎么解决钻石模型
- 虚函数
- 写了一个sql语句,问是否会走索引,整个语句的执行过程
- Update关键字(不了解)
- 事务特性,解释一下一致性
- 事务的隔离级别
- innodb可重复读级别要想解决幻读问题该怎么办(我答读是MVCC,写是加锁)
- 写的时候是只加锁吗,加的什么锁
- 写了sql语句,问会加什么锁(我答行独占锁和间隙锁)
- 间隙锁的策略是什么,前开后闭?
- 讲一下操作系统的内存管理
- 地址转换
- CPU的缓存,为什么要设置L1 L2 L3缓存(面试官想考察程序的局部性原理)
- 手撕:实现阻塞队列(生产者消费者模型),且要求取的时候先取优先级最大的
我先直接用优先队列,后面面试官让我再实现最大堆
三面(10.15) 46min
- 进程和线程的区别
- 多线程怎么通信
- 条件变量
- 多线程之间怎么保证安全,用过哪种
- 两个线程能在cpu中同时运行吗
- 滑动窗口
- 如果一直没收到确认报文会怎样
- 如果收到重复报文怎么办
- 手撕:输入一链表,将奇数位的节点升序排列放在链表前面,偶数位的节点降序排列放在链表后面,输出新的链表
字节的面试体验应该是面过的所有公司中最好的,包括前期通知,面试和后期的对接,都很舒服和及时。面试了这么多次,很多问题开始重复了,网络、操作系统,数据库问的是在真的多啊,我一开始还觉得sql有个印象就好,压根没去了解原理,后面才去根据问题搜原理。字节的面试还是挺有难度的,有固定问题也有深挖,尤其是算法题,都挺难的,要是没见过,我都是想不出来的。
全部评论
(12) 回帖