字节跳动后端实习面试经验
由于参加了暑假的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:每个结点有它的前驱,求一个可行的遍历所有结点的顺序
北京字节一面
从上海字节换到了北京,所以又又又要重新面试了
- 自我介绍
- 并发和并行
- 线程调度算法
- 怎么保证线程安全
- 乐观锁和悲观锁
- 输入url到浏览器显示页面的过程(害,又见面了)
- python的全局检索?(当时没明白问的是什么意思,所以就说了不会,其实好像正则表达式也可以)
- 缓存淘汰算法,LRU算法以及它存在的问题以及优化(不清楚优化,不过凭感觉随便答了一下加权,好像对了?)
- tcp三次挥手四次握手的过程
- 讲讲tcp和udp
- 实时视频是用tcp好还是udp好(答错了,不过面试官很和蔼的讲了为什么udp就可以了)
- 索引以及b树(准备了好久红黑树一直没机会答红黑树的问题,害,B树也还行)
- 如果索引的key值无序会怎么样
- 算法题1:给n张牌,抽取四次(可以放回),问能不能凑出m
- 算法题2:蚂蚁过桥
(顺序不太对,而且有些好像没记清,想起来的时候再补吧)
一面已经过了,还有一次技术面,一次Hr面,现在就想赶紧面试完,时间拉了好久哦,然后就是自我介绍的时候可以说的又多了一个acm银牌