阿里云 1,2,3,4面+hr面 面经!

我投的是阿里云 




一面:

算法题:反转一个句子当中的单词的顺序

问题:

  1. C++使用的最多的数据结构

  2. 使用vector存储数据你最多存储过多少个元素?

  3. vector的内存是怎么管理的?底层的实现

  4. 会自己定义类型对吧?如果使用空指针的话经常会core dump对吧?是不是空指针就没有办法调用类型上的函数了?

  5. python的 __ new __ 方法知道是干什么的么?

  6. python的元类使用过么?__ meta_class __ 使用过么?是解决什么问题的知道么?

  7. unordered_map 和 map的区别

  8. 使用的是c++的那个版本?

  9. 问一个可能比较难的问题:如果c++ 当中判断一个类型有没有某个方法你有哪些方式可以做到?发散一下思维,这个问题可能比较难。

  10. 说一下为什么选取openfaas?

  11. 容器池的概念

  12. 如果用户的执行代码只需要1-20ms 如果每次都起一个docker 那么延迟就比较高

  13. 协程和线程的区别

  14. 对于原来的实现,你有没有对比过两者的性能?

  15. orm 框架给你带来的哪些的好处?

  16. 在golang里面实现一个orm框架该怎么实现?

  17. 短时间学习一个语言和做一个项目你会怎么做?

  18. 设计接口是做了多少的工作量?

  19. 了解过k8s,大概讲一下一个pod是怎么被创建出来,怎么被删除的?

  20. websocket能做负载均衡么?

2面:
面了1个半小时,面试官非常的有礼貌,但是面的我精疲力竭。。。。
主要稳项目以及处理问题的细节。
先手撸算法题:
CanTransform:
如hit->hat,hat->cat,cat->fat。但是不能单步从hit->hog。设计算法判断给定输入能否在字典范围内经过任意次步骤完整转换。
1. 自我介绍
2. 项目主要是做什么的?
3. 项目过程当中你觉得的最大的问题是什么?
4. 对于这个问题你当时的想法和做法是什么?
5. 现在以你的想法 再遇到这样的问题你该从什么方向去考虑?
6. 实习过程当中遇到的最大的挑战是什么?
7. 在开始项目之前你该如何的调整需求和实现之间的关系?是先分析需求从需求入手还是先去定义接口?
8. 和前端的沟通的问题是怎么想的?
9. epoll的实现知道么?在内核当中是什么样的数据结构进行存储,每个操作的时间复杂度是多少?

马上下午5点P9的三面!!! 感觉阿里云是真的难。。。如果过了我再来刷新一下3面的面经。

来了来了,新鲜出炉的三面面经。
1.  算法题:
一个二叉树上求两个节点之间路径长度的最大值,说出具体的思路。
2. c++语言了解多少?
3. c++语言的多态你是怎么理解的?设计意义??
4. 总结概括一下多态是在做什么??(大佬高屋建瓴的给我总结了一番)
5. STL用的多不多,STL源码剖析看过没有?
6. STL function有个特点,他的接口都是iterator,但是在用的时候传入容器的iterator或者说传入数据的指针都可以work这个背后的机理是什么?
7. 同一份代码传递不同的东西但是都可以work,原因是什么?
8. 模板当中对类型操作的思考。。
9. 现在假设有一个程序,编译好的,编译没有错误,但是运行的时候报错,报的错是你正在调用一个纯虚函数,请问这里面导致这个错误的原因可能是什么?
10. 根据c++内部原理推理这个问题
11. 子类在调用构造函数的时候 父类的构造过程
12. 描述一下,子类构造的时候,整个构造的过程,先怎么样,再怎么样,说清楚
13. 是先构造父类的虚表指针还是先构造父类的成员?
14. 虚表指针是什么时候设进去的?
15. 在构造函数当中一部分是初始化列表一部分是在花括弧里面,你能说一下这些的顺序是什么么?差别是什么 和this指针的顺序
16. 初始化列表的写法和顺序有没有什么关系?
17. 你之前是做的什么项目?做过什么项目?
18. IO多路复用那部分你是怎么去抽象这个事情的?怎么去实现业务逻辑和核心逻辑的区分是怎么去组织这个代码?
19. 怎么保证你epoll的代码可以尽量的被复用呢?

四面:交叉面 是阿里云智能事业群数据库产品部的p9大佬
面试时间30分钟。
1. 说一下你的实习经历
2. 说一下jsonrpc之外还了解什么rpc方式?
3. 你做的这整套的东西对于之前实习的公司的价值是什么?你考虑过么?
4. AWS和阿里也有类似的服务,那么你为什么要去做?
5. 有多少人多少机器呢?
6. 图森还是一家挺热门的公司,为什么不考虑继续留在那里?
7. 开发这个系统的过程当中网络部分有多少的了解?
8. 现在让你去设计一个rpc网络通信的服务,涉及到网络框架的问题,那么你打算使用哪种网络框架模型去实现?
9. 如果你现在开发一个缓存服务呢?你会使用什么样的模式?
10. epoll的原理你知道么?
11. epoll的边沿触发和水平触发这个了解么?说一下
12. 你使用的是哪种模式呢?
13. 选择边沿触发,虽然只通知一次但是你应用层还是要把这个状态记录下来的,那么一个是应用层消耗一个是内核态消耗,有考虑过么?
14. 对c++的内存管理有了解过么?
15. new一个对象的时候该对象在内存当中是怎么布局的?
16. 成员变量,虚函数表在哪个位置?
17. 一个类可能会有父类和子类那么这些信息在对象当中是如何排版的呢?
18. 如果父类有一个虚函数叫func_A,子类也实现这个函数,在子类的构造函数当中去调用这个func_A,运行的是谁的实现?
19. 虚函数指针和构造函数体那个先被构造?
20. c++运行构造函数的时候虚函数表被构造出来了么?
21. 在普通的函数当中调用虚函数和在构造函数当中调用虚函数有什么区别?
22. 有什么需要问我的么?


约得是明天上午的hr面,形式是视频面试。看来还是很正式的。总算走到了最后这一步,还是很幸运能够面到这一步。继续加油吧!!

hr面:

面试比较正式,是使用阿里的一个视频软件进行面试的。
大概进行了20分钟的面试:
1. 实习时间
2.之前做过项目
3.未来的方向和计划
4.个人的目标
5.自我评价


目前已经签了意向书,正在走offer的统一流程。





#阿里巴巴##实习##面经##C++工程师#
全部评论
我不敢投了。。太可怕了
1 回复
分享
发布于 2019-03-22 22:32
本科生嘛?????我跪了!
1 回复
分享
发布于 2019-04-22 15:02
秋招专场
校招火热招聘中
官网直投
厉害,我们同一个部门,我是DBFS团队
点赞 回复
分享
发布于 2019-04-29 19:05
**,这是我见过最难的面试了
3 回复
分享
发布于 2019-04-12 12:25
哇,这三面真的好细,学到了
点赞 回复
分享
发布于 2019-03-23 13:14
楼主,请问你三面和四面隔了多久啊?我才面完三面,面试官给我说后面还有好几面。。。。。。。
点赞 回复
分享
发布于 2019-04-03 17:38
请问交叉和hr面隔了多久啊?
点赞 回复
分享
发布于 2019-04-12 11:37
这是实习还是全职呀?
点赞 回复
分享
发布于 2019-04-12 11:43
总结概括一下多态是在做什么??(大佬高屋建瓴的给我总结了一番)  这个怎么总结的呀?
点赞 回复
分享
发布于 2019-04-17 16:06
几次都问到了epoll  这块真的很重要啊
点赞 回复
分享
发布于 2019-04-22 14:51
这招的是P9
点赞 回复
分享
发布于 2020-01-16 19:38
怎么问起C++了
点赞 回复
分享
发布于 2020-01-19 01:14
得p6起步吧?
点赞 回复
分享
发布于 2020-03-15 13:06
阿里的大佬都喜欢问C++内存模型,都是从虚表开始问,目的就是想让你从C++对象模型开始说,要不然一直问😂。许愿自己在接下来的交叉面中也能过了
点赞 回复
分享
发布于 2020-03-26 09:02
我也是黄东平大佬交叉面的。问的真的有点难,压力也非常大,我都结巴了,希望能过。
点赞 回复
分享
发布于 2020-03-29 17:16
强得不可理喻
点赞 回复
分享
发布于 2020-03-30 05:35
同阿里云 交叉面被一阵吊打,许愿有机会hr
点赞 回复
分享
发布于 2020-03-30 08:36
请问hr面之后大概多久收到offer哦
点赞 回复
分享
发布于 2020-04-12 16:56
tql
点赞 回复
分享
发布于 2020-04-13 21:56
大佬tql!!请问下收到意向书是通过邮件吗?意向书和招聘网站状态变更哪个在前面呢?
点赞 回复
分享
发布于 2020-04-14 15:22

相关推荐

Redux是一个用于JavaScript应用程序状态管理的开源库。它主要被用于处理前端应用中数据的流动和状态的管理。Redux遵循单一数据流的原则,通过一个中央数据存储(称为Store)来管理应用的所有状态,并使用纯函数(称为Reducers)来修改状态。Redux的核心概念包括:https://www.nowcoder.com/issue/tutorial?zhuanlanId=Mg58Em&uuid=ddb195805d8e4d69890214c78e55fa2eStore(存储):是Redux的核心部分,包含了整个应用的状态树。它是唯一的,应用中所有的状态都保存在这里。Action(动作):是一个描述发生事件的普通JavaScript对象。它具有一个type属性来标识动作类型,并可以传递一些额外的数据。通过调用Action Creator来创建Action。Reducer(减速器):是一个纯函数,接收先前的状态和一个Action作为参数,并返回一个新的状态。它负责对状态进行修改。Dispatch(派发):是一个函数,用于将Action发送到Reducer以更新应用状态。通过调用dispatch函数来触发状态变更。Middleware(中间件):是对Redux的扩展,提供了在派发Action到达Reducer之前可以拦截、解析或处理Action的能力。可以通过中间件来处理异步操作、日志记录等功能。Connectors(连接器):是用于将React组件连接到Redux的机制。通过连接器,组件能够访问Store中的状态,并可以派发Action来更新状态。https://www.nowcoder.com/issue/tutorial?zhuanlanId=Mg58Em&uuid=ddb195805d8e4d69890214c78e55fa2e
点赞 评论 收藏
转发
点赞 评论 收藏
转发
55 518 评论
分享
牛客网
牛客企业服务