一面
说实话,我对这场面试非常懵。
约好的2点面试,面试官在开会,所以推迟到了2.05分。
- 开局自我介绍
- 你做过服务器的一个项目啊,说一下HTTP报文格式
- 说一下Python的内存管理,想到哪说哪?(我的简历里面只有了解python五个字,剩下的全是C++),我回答主要用C++
- 说一下你了解的网络攻击.回答 SYN FLOOD CSRF 中间人攻击
- 你了解过绿盟吗?回答:XXXXX
- 好了我的问题结束了,反问?
此时时间在2点12分,结束了面试,因为我网络攻击不太熟悉,就是做开发的,我看官网职位要求也没有说安全相关的,没想到面试基本都是安全相关的。还是比较尴尬的。 不知道会不会有二面,记录一下吧。
二面
- 开局自我介绍
- 面试官问我网络编程的流程。 我把客户端和服务端的流程说了一遍
- 如果有多个客户端来建立请求怎么办? 我回答:使用多路IO复用机制
- 那线程还是会阻塞啊? 我:使用请求队列和线程池,主线程负责连接,子线程负责处理
- 请求队列注意点是什么?我把锁还有信号量说了一下
- 如果来的客户端还是很多呢?我:缩短连接持续时间
- 你这是开源节流的方法,还有呢?我:采用分布式集群
- 那这个分布式集群,你怎么建立呢?注意点是什么?我说要做好负载均衡
- 如果两个客户端,分布在不同的服务器上面了,但是还要通信,该怎么做呢?我:建立中转服务器
- 中转服务器注意事项是什么?我:中转服务器是承压的瓶颈,也可以采用集群的方式。
- 中转服务器集群,应该注意什么? 我:第一时间没想好,他说,比如并发之间的。我说:要采用分布式锁
- 说一下你了解的分布式锁:我说了解的不深,我只知道redis的setnx可以做
做几个题吧:
- 有两个玻璃球,还有一个n层楼,说一下我们最少需要几次能够判断出在哪层楼扔玻璃球会碎?
- 说一下有两个公共节点的单链表,如何找到公共节点?我:1.采用双指针 面试官追问 还有呢?我:空间换时间,使用set存放遍历过的node
- 如果这两个单链表是有环的呢,我说:1.找到环所在2.找到入口节点3.计算链表长度4.恢复上一种情况
刚刚做完这两个之后,面试官问我期望的城市和薪资。
三面
- 感觉这次是个领导在面试我,开局给我讲这次面试流程,第一步你自我介绍,第二步我问你,第三部你反问我
- 看你简历有很多算法相关的,你是为什么想做开发的呢,这个经历能否说一下
- 你做了这个web服务器的项目,还有一个自己写的无锁的压测,你讲讲他们
- 你这个web服务器,有没有跟别人横向比较,比如Nginx,Apache之类的。没有
- 你的web服务器,比其他人的web服务器多了什么优点在里面
- 说一下你最优成就感的事情,举个例子,分享一下
- 说一下平常别人和你讨论问题,指出你不足,合作交流讨论的例子
反问:技术栈是什么样的?新人培训流程?然后就面试结束了~期待OC~
全部评论
(7) 回帖