字节跳动 C++深圳后端 四面面经 意向书已get
本硕985科班,面的是base深圳的后端开发,为了做好准备,一直拖到提前批截止前一周才递简历,30号四面完后等了一个星期,终于拿到了意向书,没有hr面。贡献一波面经,还在等待的兄弟们不要着急,一般面试完没立刻收到感谢信就已经成功了一半,拿offer的希望还是挺大的!
7-15 一面 (60min)
TCP如何实现可靠传输TCP拥塞控制过程
UDP如何设计可靠传输
系统调用的底层过程
Linux读写文件的整个底层过程
进程切换为什么开销大(必须说到TLB)
进程切换需要保存什么信息,线程切换需要保存什么信息
操作系统内存管理
线程同步方法
讲讲互斥锁和自旋锁,linux自旋锁底层实现
有没有研究过无锁同步
mysql有没有了解
有哪些用于排序的数据结构
讲讲lsmtree(项目相关)
手撕快排
快排应用场景、如何保证快排效率
隔了5分钟
7-15 二面(60min)
系统调用的底层过程TCP四次挥手
进程与线程区别
讲讲协程
如何实现哈希表,redis有没有了解?redis如何实现哈希表在线扩容
cpp程序生成过程,本文件外的函数在什么阶段才引用(记不清楚,回答extern方面的)
epoll使用流程
epoll LT与ET区别
哪些知名项目用到epoll
gdb调试core、git使用
C 11新特性
项目最难的部分、最有成就感的部分(疯狂被怼)
手撕最大连续子序列和(剑指offer原题)
面试官在结束前还朝我挥挥手,估计凉了。。。。
前两面表现很差,觉得肯定挂了,但出乎意料过了几天hr打来约三面......
7-26 三面(75min)
项目为主,网络编程和键值存储相关的聊了30min
C 多态
C 虚函数实现机制
类的内存模型
代码题,关于C 成员函数调用(静态绑定,使用空的类指针调用成员函数是否会报错)
找出1000W整型数据的中位数(说了快排,面试官说有比nlogn快的,但没想出来,希望大佬们讲解一下)
手撕复杂链表的复制(给剑指offer跪了)
有什么想问的?
一小时后接到hr电话约四面,还是技术面(估计是前两面表现的比较差加面吧,没细问hr)......
7-30 四面(50min)
面试官说前三面已经聊过一些基础知识了,所有以网络的项目为主
Reactor模式在编程中遇到的问题(面试官说事件驱动机制的开发麻烦,redis这种直接返回还好,如果涉及到其他服务的调用就麻烦)
系统收到网络数据交付给应用程序的整个过程(从网卡说起,面试官说我对底层了解的挺深)
UDP发送100个字节,对方的应用程序只recv了90个字节,剩下的10个字节怎么处理(没太明白正常情况下为什么会剩10个字节,跟面试官讨论了半天,他说这个问题太刁钻就过了)
TCP的传输速率受什么影响(先扯了硬件,再扯了Nagle算法,面试官说知道这个不错,最后扯数据分片,面试官说这个没关系就过了)
TCP发送消息如果对方不接收,我们这边会有什么情况发生(扯了应用层相关的,其实面试官只是为了引导我回答TCP的传输速率与接收窗口有关)
TCP的拥塞控制
TCP的滑动窗口
TCP的超时时间计算
手撕跳台阶(剑指offer原题......)
手撕N个“(”和N个“)”的排列组合(就是有重复数据的全排列,不需要括号匹配)
字节跳动的面试体验比oppo什么的好多了(oppo到现在还没给我发感谢信.....),视频面试很方便,面试官都挺nice,答不上来也不会表现得不耐烦。
自认为运气很好,几道算法题都很简单,因为项目原因没什么时间刷题,这方面比不上其他大佬。第一次面大厂准备不充分,一二面被问懵,之后回去狂补网络和操作系统的底层知识,三四面表现好多了,四面面试官居然还说我基础扎实,弄得我有点尴尬......
个人的教训就是细节决定成败,只会调接口、不熟悉的技术千万不要随意往简历上写,写了就要尽可能深挖原理,做好觉悟不怕被面试官“夺命连环怼”~
#字节跳动##面经##C++工程师##内推#