很幸运,这次春招内推面了三家公司,腾讯IEG,华为Cloud BU,蚂蚁金服-支付宝,全都拿到了offer。这三篇博客是按照offer的时间顺序连着的,有兴趣的话可以看我其他两篇博客。
华为Cloud BU内推面试总结(已拿到offer)
蚂蚁金服-支付宝内推面试总结(已拿到offer)
今天是3月11日,腾讯IEG技术一面,电话面
2019年3月11日 星期一
本人浙江大学软件学院研一研究生。
当时投递岗位的时候没有看清要求,写着后台开发岗,招C/C++/Java,果然越靠前越重要。。本来想投的是Java岗,奈何鹅肠后台C++偏多。结果面试的时候面的全是C++和Linux,Java一点没问。全程大概25分钟,总结如下。
面试内容和我的回答
先自我介绍一下吧
好,我叫xx, 目前在xx,本科在xx做过xx,在xx实习过,实习期间xx。
你在本科的时候参加过xx的比赛,在那个比赛中,你扮演什么角色?
我在那个比赛中作为队长,协调团队的工作,同时作为比赛项目的主力后台开发。
你觉得这个比赛项目中最难的一点是哪里。
我觉得是微信服务号中发送弹幕消息,一开始不知道怎么实现,想法很简单,后台用一个消息队列缓存用户的消息,使用ajax轮询的方式访问后台的消息队列,利用js显示在网页。后来觉得效率太低,会造成网络拥堵,采用WebSocket与后台服务器建立连接,利用sessionId完成全双工通信。
你知道WebSocket是怎么建立连接的吗?
好像是通过http建立。。。。然后。。不清楚了。
在WebSocket通信的过程中,遇到过什么问题吗?
额,有时候消息会发送失败,,,显示断开连接。。但是不知道为什么。
你的项目是部署在什么系统下的?
Linux系统。
Linux的进程间的通信有哪些方式?
信号量机制、共享内存、管道、共享文件
Liunx下如何查看共享内存的情况呢?
这个。。我不清楚。
嗯,你知道Linux下有哪些socket模型吗?
Socket模型??
就是epoll,poll,select这些。说说他们的原理,以及epoll和select有哪些不同点。
嗯,epoll,poll和select都是linux下I/O多路复用的实现,可以实现单线程管理多个连接,select是基于轮询的,轮询连接的状态,返回I/O状态,poll和select的原理基本相同,只是poll没有最大连接数的限制,因为它是基于链表的,而select是基于数组的,有最大连接数的限制。epoll和那两者的区别是,epoll不是基于轮询的检查,而是为每个fd注册回调,I/O准备好时,会执行回调,效率比select和poll高很多。
select的最大连接数是多少?
在32位的机器上貌似是1024个。
在windows系统下多少?
这个。。。。我不清楚。
好的,没关系。linux下如何查看某个端口的占用?
用netstat + grep名命令。。