字节跳动 提前批C++后端面经 一面、二面、三面集合面经
一面
操作系统
- 进程间通信几种机制
- 信号量和消息队列
- 进程和线程的区别
- 内核线程和用户线程
- 内存布局
- 虚拟内存
- 程序会全部加载内存吗
- 程序编程可执行文件的经历
- 动态链接库和静态链接库
- Linux ELF文件格式
计算机网络
- TCP/IP 和 OSI架构
- 网络层架构协议
- IP和MAC属于那一层
- 应用层协议
- HTTP和HTTPS
- 浏览器访问HTTPS经历
- TCP四次握手原因
- 三次握手和四次握手的缺点(syn flood攻击,利用半连接状态,2MSL Time wait状态)
- 中间人攻击
编程题
- leetcode 162 寻找峰值
二面
问答题
- LInux指令,查进程状态 ps
- epool的两种触发模式
- 多线程通信
- 虚函数实现原理
- 构造函数可以是虚函数吗
- socket编程接口(https://blog.csdn.net/dongyanxia1000/article/details/80743691)
- 四次挥手的TIME WAIT状态
- TIME_WAIT状态(2MSL)的作用(可靠地实现TCP全双工连接的终止、允许老的重复分节在网络中消逝 )
- TCP流量控制
- TCP拥塞控制(慢启动、拥塞避免、快重传、快恢复)
- TCP的长连接短连接
- Keep alive 和heart beat
- HTTP状态码 4XX 5XX
- mysql索引的实现方式
- B+树和hash实现由什么区别
- 最近在看什么书
- 快排效率
- 快排稳不稳定
- Top K问题思路
- 快排(O(n))和小顶堆(O(n*log k))解决Top K的复杂度和
编程题
岛屿的最大面积(Max Area of Island) - 力扣(LeetCode)
第三面
境遇问题
- 问项目
- 压力最大什么时候
- 怎么解决的
- 倾向于去什么公司
- 最近在学习什么内容
- 你的优缺点
编程题
题解- 最大子序和- 力扣(LeetCode)