阿里蚂蚁金服C++1、2面

一面:简历评估
1:实习经历,简单问了一下学的rtmp协议,讲了直播时,用udp与tcp区别,rtmfp为什么用udp
2:tcp基础知识,问了三次握手序列号问题
3:stl中map为什么用红黑书
4:用C++哪个版本,使用C++11哪些功能
5:简单介绍一下快排
6:linux虚拟内存分布,局部变量在哪个段
7:系统设计,单机图书系统,只考虑书名,所有数据可以存在磁盘上,但放不到内存中,实现书名的查找插入删除
8:数据库,不了解

二面:
先问实习(主要问rtmp协议和直播方面可以做的优化,大概聊了40分钟)
你看rtmp协议有啥感受,rtmp为什么适合多媒体传输,说了主要是分组和流的复用,可以用来实现不同类型消息之间优先级发送。
如何要在tcp上实现流复用,怎么实现?然后聊了很久关于rtmp及协议设计一些细节(其中包括粘包问题等等)
问:你觉得在整个直播过程中,那些可以优化的地方,聊了动态码率实现,丢包等问题
问的整个过程主要是问些能触发你思考的问题,给你提供一个场景,让你给出个解决方案。

然后问快排与归并排序(接近20分钟)
快排与归并比较:快排比归并快,归并比快排稳定。
然后分析了2者时间复杂度,问什么快排比归并快。
归并可以进行外排序,快排不行。
归并空间复杂度为O(n)
如果是链表,会有什么区别:
我的回答:归并空间复杂度会变成O(1),二者时间复杂度不变。
面试官补充:快排在数组情况下,由于计算机内存访问局部性原理,会比归并在这方面更快,而在链表中,这种优势不再存在,
加上归并空间复杂度变为O(1)和快排的稳定性,所以一般在链表排序中都使用归并排序。
补充:如果进行递归版的快排,可能会出现栈溢出情况。

不同排序各有优势让我实现一个通用排序库,
我:数据比较小用插入,中等用快排,比较大,用归并。
问:为什么比较小是用插入而不是冒泡
想了几分钟,面试官说过了。

问了map实现,几种实现好坏。

了不了解tcp源码,没看
poll,epoll效率上差距体现在哪(2各方面:等待队列回调函数和系统调用数据拷贝)


开始问C++(答得很差)
C++11用过没,就跟他讲了一下右值引用的作用,还准备继续问下去,我说没了结果其他功能。

模板:说了一些模板元编程坏话,感觉面试官不是很开心

3个类A类继承B类和C类,每个类中都有个名字不同虚函数,问内存布局(忘了,给了一种我觉得可能对的(其实是错的)模型,并分析了一下,面试官笑了)
delete数组为什么加[],没回答上来,也分析了一通,面试官说思路大概正确,然后今天就聊到这里。


昨天刚面的2面,最近在复习,没时间整理面经,这是面完粗略写的,比较简陋,还有很多错别字,先发出来,大家不要介意。
全部评论
是校招还是实习?
点赞 回复 分享
发布于 2018-03-21 20:25
今天在群里看见这个面经了,看来是一个学校的
点赞 回复 分享
发布于 2018-03-21 23:13
蚂蚁金服有c++岗吗?还是你投的java岗,问的c++
点赞 回复 分享
发布于 2018-03-23 10:33
楼主过了咩?
点赞 回复 分享
发布于 2022-03-11 16:38

相关推荐

02-22 18:38
门头沟学院 Java
程序员牛肉:标准的NPC简历,一个短链接+12306。你可以在牛客上面搜一搜有多少人的简历和你一样。你自己能不能给出你一个理由让面试官在大家简历高度相同的情况下,选择约面你而不是对应的211,985学生? 是因为你即将拥有的那段小厂实习吗?这种小厂实习真的很有含金量吗?因此你可以找实习,但是你如果只能找到小厂实习的话,其实意义不太大。 但你的时间是充足的,相信我:从现在到今年的九月份大三上你就干两个事情:"写博客"+“参加开源之夏”。这两个搞好了不亚于一段大厂实习的含金量。 想要让自己变得更强,首先就是不要把自己当打工人看待,让自己简历上面的活人气息更多一点,不要让自己成为流水线的产物。你不是在出售你的技能,你是在利用你的技能和公司达成一种合作关系。
点赞 评论 收藏
分享
评论
2
45
分享

创作者周榜

更多
牛客网
牛客企业服务