360 服务端C++一面凉经

1. 自我介绍
2. 你实现的线程库是怎么实现的(讲了clone & futex)
3. futex介绍一下(快速用户空间互斥体,不用频繁陷入内核,高效)
4. 为什么频繁陷入内核效率会低?(频繁上下文切换,寄存器转移等)
5. 实现线程库的场景和原因?(只是个人尝试,没有场景)
6. 服务端开发的技术点?(TCP、IO多路复用、Unix网络编程)
7. http熟吗?(只了解http不同版本间的区别,和https是http加ssl。面试官说不熟就不问了)
8. tcp头部?(端口号、标识号,然后居然记错目的IP和源IP…面试官表示诧异马上想起是IP层,之后的忘了…可能是伏笔)
9. 知道TCP的keepalive吗?(调用不清楚,但大概讲了一下keepalive是什么机制,有什么好处(避免频繁链接和关闭的开销))
10. keepalive如何实现的?如果是你怎么实现(额,口胡了一下底层保留链接状态…然后面试官提示了不知道对方是否还在链接和原理是心跳,马上说对方可以设置定时器,到期则发送一个数据包告知我还活着…面试官点了点头)
11. TCP和UDP的区别?(TCP有链接UDP无连接,UDP使用场景和TCP不同,其他没想起来…)
12. 为什么TCP是可靠的?(确认机制和数据包序号,确保对方已经接收到数据了)
13. socket编程的接口(socket()+bind()+listen()+accept() ,socket() + bind() + connect())
14. 返回的文件描述符是随机的还是什么?(返回最小,有用这种技术来实现对标准IO的重定向等)
15. accept()为什么要放在循环里?(不知道…口胡说可能有多个客户端多个请求)
16. 那这样是不是多个客户端同时请求就会漏(额…我不是很清楚里面怎么实现,但应该有些排队机制…另一个伏笔)
17. IO多路复用讲一下
* select(): 使用,缺点是文件描述符有限制,用户空间和内核交互的数据较多,效率低
* poll():使用,缺点也有用户空间和内核交互的数据多,效率低;比select好的地方是不用大范围轮询,轮询参数数组即可,且不用每次调用重置数据
* 信号驱动IO:注册SIGIO的处理函数,问题是信号不排队可能会漏,可以通过fcntl改变SIGIO改成实时信号解决,但排队超过限制会恢复成SIGIO
* epoll():相比select和poll和内核交互的数据相对少,维护感兴趣fd,有IO事件发生则加入内核等待队列,只返回等待队列,epoll()常用于多fd但稀疏活跃的场景
18. select()适合什么场景(少且密集型的)
19. 写过C++吗?用什么环境,什么编译器?编译器版本?
20. 了解过的C++11新特性(移动语义、lambda【给自己挖坑】、auto,其他一时没记起来)
21. 移动语义有什么好处?(相对拷贝语义快,移动而不是拷贝。比如实现移动构造函数+移动赋值运算符的话,在有动态内存分配时只需要复制地址即可)
22. 拷贝语义为什么慢?(拷贝有大数据对象时开销较大。还有别的吗?拷贝时有动态内存分配时需要深拷贝)
23. lambda说一下(匿名的可调用对象。闭包了解吗?不了解…只是用过lambda,在语句较短且一次性使用时可以不用写一个重载调用运算符的类)【百度了一下闭包就是由函数和与其相关的引用环境组合而成的实体,这不就是lambda的语义吗,不了解概念把自己坑了】
24. 容器用过什么?(vector、map、set)
25. map底层?(红黑树。查找效率?完全平衡,logN。key是有序的还是value是有序的?key。类对象可以作为key吗?可以,但要重载<号。面试官点了点头)
26. 使用[]但下标在原map不存在时会发生什么?([]操作必会插入,但没有指定value的话就是初始值)
27. 插入是O(1)的容器?(unordered_map。用过吗?用过。对插入查询时间复杂度要求高就可以使用unordered_map,有序可能会用map)
28. vector内存是连续的吗?如何增长?(扩容,1.5或2.0扩容。2.0的实现是什么编译器?G++)
29. 如果已经有1G,插入一个新元素,那么翻倍会导致变成2G,你会怎么解决?(我可能会用deque,deque是不同缓冲区连在一起,插入一个新元素若不够则只会增加一个缓冲区的大小,不会翻倍。)
30. 进程的段?(.text/.rodata/.data/.bss/.heap/.stack/进程信息/内核)
31. 堆和栈是挨着的吗?(人懵了…回答:看起来挨着但他们之间会有一个空隙。堆栈增长方向?栈往下堆相反)
32. 如何减少内存泄露(类的话会在析构中delete,在外面的话new和delete需要一一对应,实在没办法就编译了使用valgrind来检测,Linux也有系统调用可以检测内存泄露但具体名字忘了。ps:我居然忘了智能指针…$¥#¥%)
33. 什么是可重入函数?(调用之后无论从哪里断开,其他线程再调用这个函数不会对之前的线程产生影响。不可重入的话可能是对全局变量的修改之类的。面试官不置可否的表情让人心慌…)
34. 有什么要问的?(我:有什么建议吗?面试官:实践是不是比较少?说实话听到这个评价人有点懵…这太打击leng了。但想到其他dalao那么强…只能回答额,对,可能是相对少了些,实践可能欠缺一点)
35. 最近在看什么书?(Linux系统编程手册(TLPI),Unix环境高级编程之类的)

几分钟后收到感谢信…360真滴痛快,有点快嗷

总结:全程40分钟,面试官很和蔼,我人很菜。以后尽量不给自己挖坑,这一次给自己挖了lambda…
各位大佬多提提建议帮我提高提高
#面经##C++工程师##360公司##校招#
全部评论
这么多答出来还挂了?
1 回复 分享
发布于 2019-09-12 13:33
这么多。。。
点赞 回复 分享
发布于 2019-09-16 14:40
话说我也是合工大,也是服务端,也是C++,然后并没有这多问题,上来先写个代码
点赞 回复 分享
发布于 2019-09-12 16:30
为啥我上来甩四个代码题🤣,都没怎么问基础
点赞 回复 分享
发布于 2019-09-12 16:18
tql
点赞 回复 分享
发布于 2019-09-12 15:04
答出来这么多竟然也挂了,看来360要求很高啊
点赞 回复 分享
发布于 2019-09-12 14:53
😂你是一边回答一边记录吗
点赞 回复 分享
发布于 2019-09-12 14:50
这还挂了?
点赞 回复 分享
发布于 2019-09-12 13:41
tql
点赞 回复 分享
发布于 2019-09-12 13:30

相关推荐

04-25 18:18
门头沟学院 Java
0425&nbsp;问了些八股(10min),没问项目,做了三题手撕(50min)在pdd的面试平台,需要共享屏幕。面试官很和蔼,比约的时间早进面试间。不会的也说没事,手撕也提示自我介绍(1min)1.&nbsp;常见的集合有哪些2.&nbsp;哈希表有哪些实现方式3.&nbsp;除了哈希表,还有什么数据结构能实现输入key,找到他的value4.&nbsp;哈希表怎么实现的5.&nbsp;为什么链表长度大于8,要用红黑树6.&nbsp;为什么红黑树是log(n)的时间复杂度7.&nbsp;优先队列怎么实现的8.&nbsp;说一下堆怎么实现的,pop之后堆怎么调整9.&nbsp;说一下TCP协议10.&nbsp;说一下IP协议11.&nbsp;说一下HTTP协议和TCP/IP整体关系12.&nbsp;说一下HTTPS13.&nbsp;说一下HTTPS的原理14.&nbsp;说一下公钥、私钥和数字证书15.&nbsp;为什么一开始要用非对称加密,后来用对称加密16.&nbsp;HTTPS&nbsp;如何防范中间人攻击手撕1.&nbsp;给了两个有序的数组(数组中有重复元素),把a中存在,但b中不存在的数据加入新数组2.&nbsp;一个有序序列构造成二叉搜索树有很多种结构,如何判断两个二叉搜索树是一样的。先说了中序遍历获得序列判断,但面试官提示说能不能一边遍历一边判断,比如最小的数不相等就不往下遍历了3.&nbsp;给一个字符数组,写一个排序函数,数字排在字母前面,但数字之间相对顺序不变,字母之间相对顺序不变。(原地排序,不能用新数组)
拼多多集团-PDD一面318人在聊 查看40道真题和解析
点赞 评论 收藏
分享
04-22 19:45
已编辑
门头沟学院 UE4
ht0081:第一个Map映射一下 第二个BFS搞一下 第三个DP 第四个建个树从下向上更新一下优先值 最后最大优先值优先输出就好了
投递网易雷火等公司7个岗位
点赞 评论 收藏
分享
04-29 20:54
已编辑
门头沟学院 C++
网易雷火的一二轮面试是一起通知的4.9&nbsp;&nbsp;&nbsp;投递4.13&nbsp;笔试4.24&nbsp;一二面(面完第三天约三面)4.29&nbsp;三面(面完3小时&nbsp;约HR面)5.6&nbsp;HR面一面🍜大概40分钟&nbsp;面试官很好&nbsp;就是延迟有点大(很明显的网络延迟,一句话说完&nbsp;得等好几秒)1&nbsp;项目拷打&nbsp;&nbsp;&nbsp;&nbsp;介绍一下两个项目&nbsp;&nbsp;&nbsp;&nbsp;介绍一下项目的持久化存储&nbsp;&nbsp;&nbsp;&nbsp;还有其他项目吗&nbsp;&nbsp;&nbsp;&nbsp;高并发内存池如何实现的&nbsp;&nbsp;&nbsp;&nbsp;了解malloc的底层吗?2&nbsp;new和malloc的区别3&nbsp;了解右值吗,谈谈对移动语义的了解4&nbsp;谈一谈虚函数&nbsp;,多态。了解虚函数表指针吗,多继承下是怎样的,为什么是这样的结构5&nbsp;谈一谈菱形继承,菱形继承下使用虚继承的结构是怎样的,虚表是如何实现的,如何解决的菱形继承6&nbsp;谈一谈模版,了解特化与偏特化吗?7&nbsp;数组与链表进行遍历的过程哪一个更快,底层是怎么处理的8&nbsp;谈一下一个数据包发送给目标主机的过程9&nbsp;路由器如何知道将数据包转发给谁?同一个子网下如何进行一个转发10&nbsp;填空题&nbsp;:大小端判断&nbsp;多路复用IO&nbsp;二叉树搜索效率&nbsp;智力题&nbsp;二面🍜大概30分钟&nbsp;主要都是项目拷打&nbsp;深入谈论1&nbsp;手撕抽卡逻辑2&nbsp;项目拷打三面🍜大概40分钟&nbsp;,&nbsp;面试氛围不太好,因为牛客的视频是演讲者模式,我看面试官是要斜着看的,然后面试官怀疑我使用AI,让我举着电脑转一圈,真的无语住了。1.&nbsp;项目拷打2.&nbsp;计算机网络问题3.&nbsp;手撕线程同步实现,4.&nbsp;手撕堆排序(我的代码习惯是一边写注释一边写代码,可能有点慢,他中途直接打断我,也不管我写的对不对)5.&nbsp;反问#网易##面试##春招##offer##牛客AI配图神器#
查看16道真题和解析
点赞 评论 收藏
分享
面试官态度就还好吧&nbsp;没有特别敷衍也没特别认真有时候怀疑他有没有在听1.实习里做过最满意的事情??怎么解决的&nbsp;学到了什么&nbsp;之类的&nbsp;给你的实习打分2.正式找工作看重哪些方面3.介绍一个项目&nbsp;selenium内部机制4.小组做的项目&nbsp;有没有团队合作&nbsp;遇到什么问题&nbsp;如果你是组长怎么办5.我的性格6.想从事的行业7.对游戏行业展开说了8.只是因为玩游戏就想做游戏吗?为什么想来游戏行业9.最有成就感的事情?10.你是个有力量感的人吗11.大学生活满分7分给自己打几分&nbsp;缺了的几分在哪12.未来几年十年规划13.为什么选择我们公司大概聊了一个多小时吧&nbsp;接上篇文章&nbsp;自己真的放开了聊了&nbsp;几乎把自己价值观都展开了&nbsp;反问的时候我问自己还有哪些不足&nbsp;面试官说没有足不足&nbsp;只有匹不匹配&nbsp;还是我说的那句话&nbsp;你永远没办法知道企业想要什么样的人&nbsp;能做好的只有一次次的展示和推销自己遇到机会那是命中注定&nbsp;遇不到就算了哎&nbsp;但是被拒绝自己也能想到&nbsp;现在已经毫无波澜了&nbsp;这两周仅有的几个面试也几乎都挂了&nbsp;都感觉没什么必要找这份工作了周二面的&nbsp;周五收到拒信 #如果再来一次,你还会选择这个工作吗?#&nbsp;&nbsp;#0offer互助地#&nbsp;&nbsp;#游戏公司#&nbsp;&nbsp;#投了多少份简历才上岸#&nbsp;&nbsp;#游戏求职进展汇总#&nbsp;&nbsp;#听到哪句话就代表面试稳了or挂了?#
只写bug的程序媛:我昨天还想给你评论来着,你想去关注你性格的公司,可以投投白日梦游戏,结果今天就看到你被挂了,其实你被挂了并不是一件坏事(我在脉脉上找到了他家之前的员工,那个男生和我说了很多,这也是我那么快释怀的原因吧)我是加了一场面试被挂了,其实是因为ceo不想要我,但是业务部门又觉得我很好很匹配,当时业务主管和我聊了两个小时,几乎一上午都在面我,所以后面给我加了一轮人力负责人的面,从那次被挂了以后,我就反思了一周多,放弃互联网了,也没有继续投简历了。我个人觉得,很多人还在找计算机相关的是因为大家都把绝大部分时间花在学技术或者实习上,因为能在牛客积极分享面经的绝大部分都是有上进心的,无关是不是科班出身,无关是不是名校,无关是不是硕士,现在行情突然变的好差,大多数人如果换个方向找工作会更加迷茫,只能硬着头皮找下去,大部分人都不甘心就此算了,或者觉得现在放弃之前学的技术,实过的习又算什么。不过我觉得人生还很长,学过的技术或者实习中的收获,现在也许没办法带给我一份好的正式工作,但它总是有用的,也许静下心来思考自己到底想要的是什么才是最重要的吧!,还有就是姐妹,你觉得他没认真听你的,不是你的问题,不要因为这个内耗自己哦,我算是他家春招面的第一批,非技术面挂了的肯定不止我一个,而且他们家强度也不小,很可能是面试官也麻痹了,觉得自己认真面,认真了解,后面还是要被ceo挂,还不如索性摆烂,让自己也舒服点。毕竟我们会因为终面被挂而难受,他们也会因为通过的候选人被后面流程挂了而感觉疲惫,因为又要面新的人,从第一轮开始,又要因为面试加班了。
点赞 评论 收藏
分享
评论
4
70
分享

创作者周榜

更多
牛客网
牛客企业服务