阿里巴巴后端工程师面试经验:4轮技术面+1轮hr面,hr面主要咨询目前有哪些offer
2022-08-02 | 来源:职朋网友分享

为了帮助职业圈网友能够及时了解阿里巴巴的面试流程以及面试过程所涉及的面试问题,职业圈小编把刚获得的阿里巴巴面试经验马上编辑好,快速提供给大家,以便能够尽快帮助到有需要的人。

面试过程 4轮技术面+1轮hr面,hr面主要咨询目前有哪些offer,工资地点是否服从调配,以及之前的项目中,如何进行团队合作的,5轮面试都是1对1面试

面试过程中面试官提了哪些问题 问简历的内容,其实还行。主要环节是,智能指针拷打,一致性哈希拷打,RPC拷打。
用过C++11吗?
用过
知道 unique_ptr 吗?
知道,是独占所有权的智能指针
怎么实现独占所有权?怎么转移所有权?
b = a; 怎么实现?b = move(a); 怎么实现?
就是说了移动构造函数/移动赋值运算符的流程
知道 shared_ptr 吗?
知道,是共享所有权的智能指针
怎么实现的共享所有权?
引用计数
引用计数和管理的内存地址怎么实现的?是同一块内存空间吗?
都在堆区
make_shared 会放在同一个空间
引用计数和管理的内存是相生相依的吗?
没搞懂,最后就问了这两个是同时创建的吗?
其实不是,传入 new xxx 的构造函数就不是
同样问了 shared_ptr 的 b = a; 怎么实现?b = move(a); 怎么实现?
同样说了下拷贝构造函数/拷贝赋值运算符、移动构造函数/移动赋值运算符的流程
(想问点分布式存储相关的)知道raft吗?
只了解是个分布式共识算法,没了解具体内容(论文都没看,我可不敢说我了解了)
看我没有相关经历,那就挖一挖简历吧
知道一致性哈希吗?
顺便提了一嘴自己的RPC实现了这个东西
解释一致性哈希是什么,然后开始深挖一致性哈希,怎么减少这种数据的移动,分桶结果改变的
然后开始引出虚拟节点
互斥锁,信号量使用的场景区别
一个线程互斥,另一个线程同步
互斥锁,读写锁,自旋锁的区别
八股文,只说了自旋锁,就没让继续说了
怎么实现自旋锁
说了原子操作,test and set指令(tsl)
RPC的实现流程?
八股文
怎么在同一个端口,发布多个服务?
就说说自己咋实现的
怎么实现的超时?
socket设置,recv超时
然后开始问重试机制,如果需要我实现应该怎么实现?
最大重试次数,计数
如果同时发出很多个RPC请求,这个qps上不去,咋办?
不知道,想了一会说,也不能总是创建很多个线程吧
然后就说可能得用I/O多路复用了
RPC调用的同步和异步,和之前说的同步和异步,是一个意思吗?
socket的同步阻塞,是收到数据前,一直阻塞,等着
这个是在得到调用结果前,是否可以继续做下面的事情
那我继续问,如果同一个RPC调用,按照你之前的重试机制实现,如果前一个请求(涉及到写,非幂等,比如文件创建)是成功的(但是做的太久,设置的超时太短,以为超时失败了),后面重试的请求失败了(显示文件已创建),应该怎么解决?
想了很久,说同一个请求的数据包都是通过请求id关联的,
那么每个请求,都单独开个线程去等(因为重试的次数本就不多),然后请求到的结果,放入哈希表,当然,也放到队列里面
通过请求id,索引哈希表,看看有没有最近的成功请求结果,如果有,之后的失败请求,就没必要记录了
那么,根据这个实现,如果第一次的请求是响应成功的,但是由于网络原因失败,应该怎么办?
不懂了,之后没继续深挖
那么就说webserver吧(简历的项目名称不是webserver,不过被一眼看出,老面试官了)。你知道I/O多路复用机制,除了epoll,还有啥吗?
select,poll,原理差不多,没让说具体原理
ET和LT的区别?
八股文
ET和LT哪个性能更好?
一般认为ET更好,毕竟可以从内核中少拷贝就绪文件描述符
但是,ET伴随着使用非阻塞socket,要一次性读完、写完数据,也就是说可能进行的 read 或者 write 系统调用会更多
至于是否真的更好,目前没有定论,需要在更多的环境、场景下去测试

查看面试题参考答案>>

有关面试流程的相关细节问答 你是通过何种渠道获得这次面试机会的?
答:内部推荐

你觉得这次面试的难度如何?
答:困难

你对这次面试的整体感觉怎么样?
答:很好

这次面试的结果如何?
答:面试未得到工作

赞一下(11) 踩一下

以上信息仅代表发布者自己的观点,由于在职时间、职位以及个体本身的影响,和公司整体情况可能会有偏差,仅供参考!

评论

还需查看阿里巴巴 更多信息?

相关公司面试经验