【一面】
三分之二的时间在问项目,当时简历上只做了 HTTP服务器、tcp群聊和扫雷
HTTP多线程版本和Epoll版本的优缺点对比
Epoll的底层实现、LT和ET区别
HTTP报文的编码问题
GET和POST区别(可以从TCP方面说)
TCP如何解决黏包问题?
说说 TCP三次握手、四次挥手(发送的报文、状态的改变、函数的调用)
关于迷宫,如何找最短路径,如何判断已经找完所有路径 ?
从玩家角度设计一个扫雷外挂?
了解哪些 Linux指令和工具
gdb打断点底层实现原理
进程和线程的区别,何时用多进程、何时用多线程?
线程互斥锁底层实现原理
堆排时间复杂度、空间复杂度以及稳定性分析
大小端、内存对齐、 int类型的大小
【二面】
开局先写三个代码
从一个 sockfd中读取字符,判断是否含有目标字符串,30s后未找到返回false
实现memove(分析内存重叠各种情况)
实现 10进制转任意进制(注意负数)
HTTP服务器(客户端)发送、接受数据哪些要设置成非阻塞
说说你对虚拟内存的理解, MMU映射,多级页表(笑容逐渐消失)
什么情况下会发生段错误(各种追问,内心开始崩溃)
你的服务器出现的 bug,你是如何解决的 ?
你还有什么想问我的吗?
【HR面】
介绍一下自己
你的学习方法,大学成绩如何
为什么想到做这些项目、如何完成的
有考研想法吗、能接受外地工作吗、能实习吗
你的职业规划
你还有什么要问我的吗