开发者招聘节 | 2019阿里巴巴技术面试题分享

云栖社区特别制作了《2019阿里巴巴技术面试题》的专辑,希望结合阿里巴巴技术专家们多年的工作、面试经验总结提炼而成的面试真题,让更多的开发者加入到阿里这个大平台。


本文列举了8道试题,涵盖中间件、人工智能、CDN、数据库和存储四个技术领域。



中间件


面试题.关于epoll和select的区别,哪些说法是正确的?(多选)


A.epoll和select都是I/O多路复用的技术,都可以实现同时监听多个I/O事件的状态

B.epoll相比select效率更高,主要是基于其操作系统支持的I/O事件通知机制,而select是基于轮询机制

C.epoll支持水平触发和边沿触发两种模式

D.select能并行支持I/O比较小,且无法修改


出题人:寈峰


阿里技术专家,阿里巴巴百年技术大学讲师,Apache RocketMQ Committer,Linux OpenMessaging Advisory Board Member,具有多年分布式消息系统等中间件架构设计及研发经验,对云计算及分布式系统架构有深刻理解。目前负责Apache RocketMQ的研发及社区生态。

640?wx_fmt=jpeg


招聘职位:阿里云中间件技术专家

https://yq.aliyun.com/articles/700243


人工智能


面试题:如何实现一个高效的单向链表逆序输出?


出题:昀龙


阿里云弹性人工智能负责人,带领团队研发了同时支持Tensorflow、MXNET、PyTorch、Caffe的Perseus加速框架,曾获得Dawnbench推理世界竞赛的性能第一和成本最低双料冠军。曾任阿里云弹性高性能计算、超级计算集群技术架构师,获得过多项专利,拥有10年以上AI技术研发和高性能优化经验。精通针对CPU、GPU、MIC等微架构的计算性能优化以及网络、存储等系统性能优化。曾在英特尔SSG部门工作,并获得过英特尔中国最高成就奖(ICA)。当人工智能遇上云计算,未来不可限量,欢迎加入阿里云弹性人工智能团队。

640?wx_fmt=jpeg


招聘职位:阿里云-GPU虚拟化研发高级专家

https://job.alibaba.com/zhaopin/position_detail.htm


CDN

面试题1: LRU缓存机制

设计和实现一个 LRU(最近最少使用)缓存 数据结构,使它应该支持以下操作: get 和 put 。get(key) ‑ 如果key存在于缓存中,则获取key的value(总是正数),否则返回 ‑1。put(key,value) ‑ 如果key不存在,请设置或插入value。当缓存达到其容量时,它应该在插入新项目之前使最近最少使用的项目作废。


案例:

LRUCache cache = new LRUCache( 2 / 容量 / );

cache.put(1, 1);
cache.put(2, 2);
cache.get(1); // 返回 1
cache.put(3, 3); // 该操作,会将 key 2 作废
cache.get(2); // 返回 ‑1 (结果不存在)
cache.put(4, 4); // 该操作,会将 key 1 作废
cache.get(1); // 返回 ‑1 (结果不存在)
cache.get(3); // 返回 3
cache.get(4); // 返回 4


测试用例: 

s = 

[["put","put","get","put","get","put","get","get","get"],[[1,1],[2,2],[1],[3,3],[2],

[4,4],[1],[3],[4]]]


考察点:

对LRU实现的基本原理和数据结构的理解。


面试题2:给定一个二叉搜索树(BST),找到树中第K小的节点


考察点:

  • 基础数据结构的理解和编码能力;

  • 递归使用;


示例:

如下图,输入K=3, 输出节点值3


640?wx_fmt=jpeg


说明:
保证输入的K满足1<=K<=(节点数目)


面试题3:已知sqrt(2)约等于1.414,要求不用数学库,求sqrt(2)精确到小数点后10位


考察点:

  • 基础算法的灵活应用能力(二分法学过数据结构的同学都知道,但不一定往这个方向考虑;如果学过数值计算的同学,应该还要能想到牛顿迭代法并解释清楚);

  • 退出条件设计


出题:文景


阿里云CDN资深技术专家,浙大硕士,在高性能服务端产品开发、稳定性、服务质量优化及成本优化等各项功能都有10年以上的经验。在网易杭州研究院负责底层开源软件研发,国内最早核心Nginx研发人员之一,曾任Tengine研发负责人,热衷于参与开源项目。


现在是CDN技术负责人,连续7年服务双11,保障整个阿里集团95%以上的流量分发稳定性。从2014年开始,从0到1构建阿里云CDN的商业化基础设施,包括点播、直播、动态、安全加速等各项产品线,阿里云CDN现在是中国用户数最多的CDN、也是国内规模最大的CDN。正在将CDN打造成互联网的基础设施,为全球用户提供接入、加速、安全的稳定服务。

640?wx_fmt=jpeg


招聘职位:点此进入查看CDN大量职位并投递简历

https://yq.aliyun.com/articles/699997


数据库


面试题1:从innodb的索引结构分析,为什么索引的key长度不能太长?

面试题2:MySQL的数据如何恢复到任意时间点?


出题:近秋


阿里云数据库产品技术部技术专家,有6年的行业从业经验。2016年加入阿里云,目前负责最流行的开源数据库MySQL在阿里云的商业化的工作。

640?wx_fmt=jpeg


招聘职位:阿里云数据库技术专家

https://yq.aliyun.com/articles/700623


存储


面试题:NFS和SMB是最常见的两种NAS(Network Attached Storage)协议,当把一个文件系统同时通过NFS和SMB协议共享给多个主机访问时,以下哪些说法是错误的:(多选)


A. 不可能有这样的操作,即把一个文件系统同时通过NFS和SMB协议共享给多个主机访问。

B. 主机a的用户通过NFS协议创建的文件或者目录,另一个主机b的用户不能通过SMB协议将其删除。

C. 在同一个目录下,主机a通过NFS协议看到文件file.txt,主机b通过SMB协议也看到文件file.txt,那么它们是同一个文件。

D. 主机a通过NFS协议,以及主机b通过SMB协议,都可以通过主机端的数据缓存,提升文件访问性能。


出题:起影


阿里云文件存储-高级技术专家,清华大学本科和研究生,电子工程系光电子和光通信专业。毕业后在两家光通信公司(Lucent和Sycamore)进行光网络产品的开发。从2011年开始进入存储行业,加入EMC2公司,主要参与文件系统的开发,六年中,参与了企业级中端产品VNX/Unity多项Block和File的特性开发。


2017年2月加入阿里云文件存储团队,参与基于KV系统的文件系统开发,以及NFS/SMB相关协议开发。

640?wx_fmt=jpeg


招聘职位:阿里云存储技术专家

https://yq.aliyun.com/articles/700623


©每周一推

第一时间获得下期分享


640?wx_fmt=gif

Tips:

# 点下“看”❤️

# 然后,公众号对话框内发送“肥皂”,试试手气??

# 本期奖品是来自淘宝心选冷凝洁面方皂一枚。?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值