字节跳动后端实习面试经验
由于参加了暑假的byte camp,所以面试是从二面开始的,顺便也说一下byte camp的面试,笔试的话可以在网上找到题。(byte camp体验非常好)
一面(byte camp)
- 自我介绍
- 进程和线程的区别
- 创建一个进程时操作系统做了什么?
- 内核态和用户态
- 以QQ为例,应该怎么设计进程和线程
- 进程通信的方式
- 通信方式中哪个速度最快?为什么?
- new和malloc的区别
- malloc和realloc的区别
- C++多态
- 虚函数表
- C++的锁的实现
- C++定义一个函数值针数组
- 用宏定义一个求最大值
- 算法题1:有红,黄,白三种颜色小球,要求把所有的红的放在左边,黄的放在中间,白的放在最后
- 算法题2:给出一组线段,求这些线段覆盖的总长度
二面
- 自我介绍
- 谈谈项目
- 谈谈kafka,我们是怎么设计topic的?
- 为什么要用websocket?
- 输入url后都做了什么?如果访问的是在一个路由器下会发生什么?
- http的状态码
- tcp/ip的理解,tcp处于哪一层,ip处于哪一层
- TCP头部信息
- 三次握手的过程,四次挥手中客户端的wait状态
- tcp的拥塞控制方法有哪些
- 对https的理解
- 对mysql的索引的理解,局促性聚簇索引和非聚簇索引
- hash的理解,独立链法和平方探测法有什么区别
- hash中怎么删除一个元素
- 一致性hash
- 说说有那些排序,以及时间复杂度,和稳定性
- 谈谈对docker的理解,docker和虚拟机的区别?
- 说说linux下常用的命令有哪些?
- 算法题1:m个房子,每个房子都可以涂n种颜色,要求不能和相邻的房子颜色一样,给出每个房子涂每种颜色的花费,求最小花费
- 算法题2:每个结点有它的前驱,求一个可行的遍历所有结点的顺序