面试公司:字节跳动
面试岗位:大数据开发
一面:
1.首先自我介绍,然后简单聊下项目。
2.http服务,接收方如何判断数据接受完毕?
3.浏览器输入 www.baidu.com的过程?
4.分别说说ARP、ICMP、TCP协议的理解?
5.路由器属哪一层?IP包经过路由器后发生了什么变化?
6.介绍select、epoll的区别?
7.介绍下泛洪?
8.介绍下C++三种智能指针,三种的区别分别是什么?
9.c语言中static的用法?
10.tcp连接、断开的详细过程?每个过程的标志都有什么?
11.平时如何调试程序?断点的原理是什么?
手撕代码:
1.链表对折,要求O(1)空间,例如:
将1->2->3->4....->n-1->n->null 对折成 1->n->2->n-1->3->n-2....->null
提问:有什么想问的?
面试感受:共四十多分钟,一面主要偏基础知识,网络考察的比较多。
二面:
1.直接介绍实验室的项目(研究生是电机控制)。
2.写一个电机控制相关算法的函数,然后详细讲解,为什么用这个?有没有其他的算法?
3.结构体的成员调用struct1->num的底层实现?宏定义MAX(a,b)的实现?
4.详细说下http请求的方法有哪些?讲下http的报文结构?
5.说几个http首部的字段?管线化是什么?怎么保证服务器按顺序返回?
6.说下tcp的特点有哪些?详细讲tcp的一些机制?为什么需要这些机制?详细讲tcp报文首部?
手撕代码:
1.已知结构体类型和指向某个成员的指针,求结构体起始地址,例如:
struct A {int a; int b;...;int c;...};指向结构体变量a中c成员的指针是int *p。求a的地址?
2.逆时针打印矩阵,例如:
1 2 3
4 5 6 => 147896325
7 8 9
提问:有什么想问的?
面试感受:
差不多一个小时,由于晚上刚下班就回来面试,状态不好。二面面试官喜欢考察对问题本质的理解,很喜欢问为什么是这样,面完后长吸了口气。



