2019年阿里实习面经
我投的是阿里云计算平台 部门是之前的飞天八部好像
简历面:由于简历面的面试官就是推我的老哥 就直接pass了
一面:
算法题:反转一个句子当中的单词的顺序
问题:
C++使用的最多的数据结构
使用vector存储数据你最多存储过多少个元素?
vector的内存是怎么管理的?底层的实现
会自己定义类型对吧?如果使用空指针的话经常会core dump对吧?是不是空指针就没有办法调用类型上的函数了?
python的 __ new __ 方法知道是干什么的么?
python的元类使用过么?__ meta_class __ 使用过么?是解决什么问题的知道么?
unordered_map 和 map的区别
使用的是c++的那个版本?
问一个可能比较难的问题:如果c++ 当中判断一个类型有没有某个方法你有哪些方式可以做到?发散一下思维,这个问题可能比较难。
说一下为什么选取openfaas?
容器池的概念
如果用户的执行代码只需要1-20ms 如果每次都起一个docker 那么延迟就比较高
协程和线程的区别
对于原来的实现,你有没有对比过两者的性能?
orm 框架给你带来的哪些的好处?
在golang里面实现一个orm框架该怎么实现?
短时间学习一个语言和做一个项目你会怎么做?
设计接口是做了多少的工作量?
了解过k8s,大概讲一下一个pod是怎么被创建出来,怎么被删除的?
websocket能做负载均衡么?
2面:
面了1个半小时,面试官非常的有礼貌,但是面的我精疲力竭。。。。
主要稳项目以及处理问题的细节。
先手撸算法题:
CanTransform:
如hit->hat,hat->cat,cat->fat。但是不能单步从hit->hog。设计算法判断给定输入能否在字典范围内经过任意次步骤完整转换。
- 自我介绍
- 项目主要是做什么的?
- 项目过程当中你觉得的最大的问题是什么?
- 对于这个问题你当时的想法和做法是什么?
- 现在以你的想法 再遇到这样的问题你该从什么方向去考虑?
- 实习过程当中遇到的最大的挑战是什么?
- 在开始项目之前你该如何的调整需求和实现之间的关系?是先分析需求从需求入手还是先去定义接口?
- 和前端的沟通的问题是怎么想的?
- epoll的实现知道么?在内核当中是什么样的数据结构进行存储,每个操作的时间复杂度是多少?
马上下午5点P9的三面!!! 感觉阿里云是真的难。。。如果过了我再来刷新一下3面的面经。
来了来了,新鲜出炉的三面面经。
三面是阿里盘古团队的p9大佬东平!
- 算法题:
一个二叉树上求两个节点之间路径长度的最大值,说出具体的思路。 - c++语言了解多少?
- c++语言的多态你是怎么理解的?设计意义??
- 总结概括一下多态是在做什么??(大佬高屋建瓴的给我总结了一番)
- STL用的多不多,STL源码剖析看过没有?
- STL function有个特点,他的接口都是iterator,但是在用的时候传入容器的iterator或者说传入数据的指针都可以work这个背后的机理是什么?
- 同一份代码传递不同的东西但是都可以work,原因是什么?
- 模板当中对类型操作的思考。。
- 现在假设有一个程序,编译好的,编译没有错误,但是运行的时候报错,报的错是你正在调用一个纯虚函数,请问这里面导致这个错误的原因可能是什么?
- 根据c++内部原理推理这个问题
- 子类在调用构造函数的时候 父类的构造过程
- 描述一下,子类构造的时候,整个构造的过程,先怎么样,再怎么样,说清楚
- 是先构造父类的虚表指针还是先构造父类的成员?
- 虚表指针是什么时候设进去的?
- 在构造函数当中一部分是初始化列表一部分是在花括弧里面,你能说一下这些的顺序是什么么?差别是什么 和this指针的顺序
- 初始化列表的写法和顺序有没有什么关系?
- 你之前是做的什么项目?做过什么项目?
- IO多路复用那部分你是怎么去抽象这个事情的?怎么去实现业务逻辑和核心逻辑的区分是怎么去组织这个代码?
- 怎么保证你epoll的代码可以尽量的被复用呢?
四面:交叉面 是阿里云智能事业群数据库产品部的p9大佬
面试时间30分钟。
- 说一下你的实习经历
- 说一下jsonrpc之外还了解什么rpc方式?
- 你做的这整套的东西对于之前实习的公司的价值是什么?你考虑过么?
- AWS和阿里也有类似的服务,那么你为什么要去做?
- 有多少人多少机器呢?
- 图森还是一家挺热门的公司,为什么不考虑继续留在那里?
- 开发这个系统的过程当中网络部分有多少的了解?
- 现在让你去设计一个rpc网络通信的服务,涉及到网络框架的问题,那么你打算使用哪种网络框架模型去实现?
- 如果你现在开发一个缓存服务呢?你会使用什么样的模式?
- epoll的原理你知道么?
- epoll的边沿触发和水平触发这个了解么?说一下
- 你使用的是哪种模式呢?
- 选择边沿触发,虽然只通知一次但是你应用层还是要把这个状态记录下来的,那么一个是应用层消耗一个是内核态消耗,有考虑过么?
- 对c++的内存管理有了解过么?
- new一个对象的时候该对象在内存当中是怎么布局的?
- 成员变量,虚函数表在哪个位置?
- 一个类可能会有父类和子类那么这些信息在对象当中是如何排版的呢?
- 如果父类有一个虚函数叫func_A,子类也实现这个函数,在子类的构造函数当中去调用这个func_A,运行的是谁的实现?
- 虚函数指针和构造函数体那个先被构造?
- c++运行构造函数的时候虚函数表被构造出来了么?
- 在普通的函数当中调用虚函数和在构造函数当中调用虚函数有什么区别?
- 有什么需要问我的么?
约得是明天上午的hr面,形式是视频面试。看来还是很正式的。总算走到了最后这一步,还是很幸运能够面到这一步。继续加油吧!!
hr面:
都说阿里的hr的权利比较大直接决定面试的生死
面试比较正式,是使用阿里的一个视频软件进行面试的。
大概进行了20分钟的面试:
- 实习时间
- 之前做过项目
- 未来的方向和计划
- 个人的目标
- 自我评价