面试复盘|字节跳动懂车帝后端 123面总结(已凉)
一面:
#面试复盘##字节跳动##面试题目#
面试时长:48分钟
- 开局自我介绍,面试小哥贼帅
- 介绍一些web服务器的项目,都做了什么
- 介绍select,poll,epoll的区别,特点
- 说一下升序链表的实现思路,有什么优化的地方吗
- 说一下C++的多态怎么实现的
- 说一下虚函数指针的初始化时间,虚函数表什么时候确定的呢?分别存在哪
- 进程和线程的区别,分别占有什么
- 协程了解吗,协程的主要作用?协程有什么优点
- 说一下进程间通信的方式?详细说一下管道和消息队列
- 说一下TCP三次握手,能否两次握手
- 两次握手会发生什么?
- 三次握手有什么不好的地方吗?有点懵,面试官提示我DDOS攻击角度
- timewait状态,是干嘛的
- 说一下输入url之后的全过程
- 说一下OSI七层参考模型,HTTP在那一层,dns在哪一层,tcp、udp在哪一层。
- 路由器工作在哪一层
- 说一下mysql和innodb和myisam的区别
- mysql索引的存储方式
- mysql的最左前缀法则?举了个例子问我能够匹配上吗
- 讲一下事务的四种隔离级别,他们分别解决了什么问题
- 说一下脏读,不可重复读,幻读
- 说一下mysql的默认隔离级别?通过什么实现的?
- 讲一下mvcc的理解,如何实现的mvcc
- 讲一下mysql有哪几种锁,讲一下间隙所
- 间隙锁都加在哪了
- 讲一下mvcc的事务id,他是怎么判断哪些事务能够访问到哪些版本的
- 熟悉redis吗?讲一下redis的数据类型
- 了解常用的消息队列吗,kafka之类的?不了解
- 有算法经历,为什么不去搞算法?
- 能来实习吗?
翻转链表区间元素
反问:部门技术栈?Go语言
二面:
面试时长:40分钟左右
- 开局自我介绍
- 详细讲一下你的HTTP服务器的项目
- 讲一下影响你项目并发量的瓶颈在哪
- 说一下你的升序链表
- 讲一讲进程,线程,协程之间的区别
- 讲一下线程池如何设计的
- 线程数量是固定的吗,能不能动态增加?增加线程数量可以提高并发量吗?
- 说一下日志系统
- 说一下epoll和poll的适用场景
- epoll的ET和LT模式有什么区别
- linux如何查看一个端口被什么进程占用
- STL的vector底层怎么实现的?有缩容操作吗?
- map和unprdered_map是怎么实现的,区别是什么?
- 说一下innodb引擎如何实现索引的
- 在innodb RR级别下,select * from user where id = 10 for update会触发什么锁?如何id=10不存在的情况下会触发什么锁呢?
- 设计题目,如何设计实现一个论坛系统?
- 如何建表,字段之间什么注意的,写一下不同表的字段还有关联
- 你平常遇到问题是怎么解决的?
- 能来实习吗?
算法题:全排列
三面:
面试时长:18分钟
- 开局自我介绍
- 如何解决线程池里面的惊群问题。
- 如何解决不同线程读取不同socket数据问题
- 网络模型的优缺点,reactor还有主从reactor,高效半同步/半异步模式。这块有点弄混了。。。
- 为何不在项目中使用redis?
- redis的源码,还有底层的实现细节。
反问:
部门技术栈。 平常都是这么问的,没想到被面试官怼了,难道这些问题你前两面没有问过吗。。我被问懵了。。