【第一轮面试】1. 使用mysql怎么保证读写的安全性2. 具体是使用了mysql的什么锁3. socket通信是怎样实现的4. TCP和UDP的区别和使用场景5. TCP如何保证可靠传输6. 序列号的作用是什么7. 客户端如何保证接收的ACK报文是自己想要的8. 四次挥手的时候还能发送消息呢9. 四次挥手什么时候不能发送消息10. GET 和 POST 的区别11. 内存分区是怎样的12. 代码段、数据段、.bss段、堆和栈的用途13. 堆和栈的区别14. 堆和栈的使用大小有什么不同15. 什么情况下使用栈16. 静态变量放在哪个段17. 进程调度算法有哪些18. 短作业优先和时间片轮转算法的缺点19. 你知道哪些排序算法20. 哪些排序算法的时间复杂度是O(nlogn)21. 归并排序的时间复杂度是多少22. 为什么堆排序的时间复杂度是O(nlogn)23. 手撕:给你个树,求距离target节点距离为k的所有节点,将这些节点放入数组中
【第二轮面试】1. 实习的时候做了什么2. 客户端请求还未响应时客户端是什么状态3. 异步处理结束时如何将它的结果返回给客户端4. 客户端的http请求是通过80端口通信的吗5. 服务端可以最多连接多少客户端6. 既然是同一个端口,服务端如何分辨不同的客户端7. C和C++的区别8. C和C++在内存分配方面有什么不同9. 智能指针10. lamda表达式捕获的原理11. 口述:抢红包算法和拓扑排序12. 如果要学习客户端知识,你打算如何学习13. 目前手里有其他offer吗14. 如果发了offer可以来实习吗15. 手撕:
1. 分别用递归和非递归的方法查看一棵树是否是另一棵树的子树2. 查找字符串的最长回文子串
【第三轮面试】1. 实习的时候做了什么2. 多进程和多线程有什么区别3. 使用多线程时需要注意什么4. http 的报文结构5. http 和 https 的区别6. 如何在10000张图片中最快找到一张最相似的图片7. 平时一般是如何学习新的技术栈的8. 有什么爱好吗9. 手撕:LRU缓存
【第四轮面试】1. 你的性格特点是什么2. 有什么兴趣爱好3. 你有哪些不足,举例说明4. 针对你的不足,你打算如何做5. 实习做了什么6. 从实习入职到做上手项目用了多久时间7. 实习的收获是什么8. 为什么实习三个月就离职了9. 如果你要学习新的模块,如何进行学习10. 什么情况下适合用单线程,什么情况下适合用多线程11. 在浏览器输入一个网址,到网页展示中间的过程是怎样的12. 了解网页的渲染原理吗13. 你知道哪些排序算法14. 快排和归并在时间和空间上的相似点和不同点15. 归并排序的时间复杂度为什么是O(nlogn)16. 手撕:给出一个数组和两个区间,将第一段区间的内容复制到第二段区间中,超出/剩余部分不计。