科技改變生活 · 科技引領未來
為幫助開發者們提升面試技能、有機會入職阿里,云棲社區特別制作了這個專輯——阿里巴巴資深技術專家們結合多年的工作、面試經驗總結提煉而成的面試真題這一次將陸續放出(面試題官方參考答案將在專輯結束后統一匯總分享,點此進入答題并圍觀他人答案http
為幫助開發者們提升面試技能、有機會入職阿里,云棲社區特別制作了這個專輯——阿里巴巴資深技術專家們結合多年的工作、面試經驗總結提煉而成的面試真題這一次將陸續放出(面試題官方參考答案將在專輯結束后統一匯總分享,點此進入答題并圍觀他人答案 https://yq.aliyun.com/roundtable/497138)。并通過這些筆試真題開放阿里巴巴工作機會,讓更多的開發者加入到阿里這個大平臺。
這一次,不僅是知識的收獲,還將間接地與技術大牛們做了直觀的溝通,了解他們的出題思路與考察要點,并加以消化吸收,這對自己技術能力本身就是一種極大的提升。走上編程之路,不斷豐富自己方能與世接軌,努力做最優秀的自己。
5月21日,我們給開發者的第28道面試題。
28.請評估一下程序的執行結果?
public class SynchronousQueueQuiz { public static void main(String[] args) throws Exception { BlockingQueuequeue = new SynchronousQueue<>(); System.out.print(queue.offer(1) + " "); System.out.print(queue.offer(2) + " "); System.out.print(queue.offer(3) + " "); System.out.print(queue.take() + " "); System.out.println(queue.size()); } }
? A. true true true 1 3
? B. true true true (阻塞)
? C. false false false null 0
? D. false false false (阻塞)
阿里巴巴出題專家:桃谷
阿里云中間件技術專家, Apache Dubbo PMC ,Spring Cloud Alibaba Architect,具有多年分布式以及中間件架構設計及研發經驗,目前負責Apache Dubbo的研發及社區生態。
招聘職位:阿里中間件技術人才
https://yq.aliyun.com/articles/700243
點擊進入聚能聊答題,并圍觀大家的回答!
https://yq.aliyun.com/roundtable/497948
5月20日,我們給開發者的第27道面試題。
27.如何用socket編程實現ftp協議?
阿里巴巴出題專家:吳明
阿里云彈性計算創新產品Z工作室資深技術專家,2010年加入阿里云,曾負責過阿里云供應鏈和公有云IAAS運維團隊,14年開始從0到1建立了專有云技術服務團隊。目前是阿里云國產化研發負責人和彈性計算產品團隊負責人。
招聘職位:阿里云-GPU虛擬化研發高級專家
https://job.alibaba.com/zhaopin/position_detail.htm
點擊進入聚能聊答題,并圍觀大家的回答!
https://yq.aliyun.com/roundtable/497948
5月19日,我們給開發者的第26道面試題。
26.假如給你一個新產品,你將從哪些方面來保障它的質量?
阿里巴巴出題專家:晨暉
阿里云中間件技術部測試開發專家,從事軟件開發和測試工作多年,在軟件產品質量保障方面有較豐富的經驗。擅長于自動化測試、數據庫技術、自動化工具研發,并在相關領域擁有多項發明專利。
招聘職位:中間件招聘技術人才啦
https://yq.aliyun.com/articles/700243
點擊進入聚能聊答題,并圍觀大家的回答!
https://yq.aliyun.com/roundtable/497948
5月18日,我們給開發者的第25道面試題。
25.給定一個整數數組和一個整數,返回兩個數組的索引,這兩個索引指向的數字的加和等于指定的整數。需要最優的算法,分析算法的空間和時間復雜度。
阿里巴巴出題專家:龍欣
阿里云異構計算資深專家,在系統和異構加速器虛擬化,性能優化,硬件芯片驗證設計,異構加速器云化系統架構設計以及服務方面有超過15年的工作經驗,曾在美國硅谷就職超過8年的時間,參與開發了屢獲殊榮的業界第一個商用全虛擬化的GPU產品,是GPU虛擬化前端和加速協議接口設計的負責人;當下,構建了亞洲區規模最大的公共云GPU服務和FPGA云服務,目前是阿里云異構計算產品線的研發負責人。
招聘職位:阿里云-GPU虛擬化研發高級專家
https://job.alibaba.com/zhaopin/position_detail.htm
點擊進入聚能聊答題,并圍觀大家的回答!
https://yq.aliyun.com/roundtable/497948
5月17日,我們給開發者的第22道面試題。
24.如果讓你來設計一個支持數據庫、NOSQL和大數據之間數據實時流動的數據流及處理的系統,你會考慮哪些問題?如何設計?
23.如果讓你設計一個通用的、支持各種數據庫秒級備份和恢復的系統,你會如何設計?
阿里巴巴出題專家:千震
阿里云數據庫產品事業部高級技術專家,2012年加入阿里巴巴,目前負責DTS&DBS團隊和研發,在阿里云提供遷移、同步和容災的服務,支持阿里巴巴、螞蟻、阿里云等異地多活單元化架構,曾負責阿里全球最大的Hbase集群的開發和維護工作,曾先后工作于IBM、Cisco。
招聘職位:數據庫團隊誠招技術人才
https://yq.aliyun.com/articles/700623
點擊進入聚能聊答題,并圍觀大家的回答!
https://yq.aliyun.com/roundtable/497948
5月16日,我們給開發者的第21道面試題。
22.刪除鏈表的倒數第N個節點
給定一個鏈表,刪除鏈表的倒數第 n 個節點,并且返回鏈表的頭結點。
示例:
給定一個鏈表: 1->2->3->4->5, 和 n = 2.
當刪除了倒數第二個節點后,鏈表變為 1->2->3->5.
說明:
給定的 n 保證是有效的。
要求:
只允許對鏈表進行一次遍歷。
21.最大頻率棧
實現 FreqStack,模擬類似棧的數據結構的操作的一個類。
FreqStack 有兩個函數:
push(int x),將整數 x 推入棧中。
pop(),它移除并返回棧中出現最頻繁的元素。
如果最頻繁的元素不只一個,則移除并返回最接近棧頂的元素。
示例:
push [5,7,5,7,4,5]
pop() -> 返回 5,因為 5 是出現頻率最高的。
棧變成 [5,7,5,7,4]。
pop() -> 返回 7,因為 5 和 7 都是頻率最高的,但 7 最接近棧頂。
棧變成 [5,7,5,4]。
pop() -> 返回 5 。
棧變成 [5,7,4]。
pop() -> 返回 4 。
棧變成 [5,7]。
阿里巴巴出題專家:屹平
阿里云視頻云邊緣計算高級技術專家,長期從事分布式應用網絡(P2P)、音視頻傳輸、音視頻類應用等方向的設計和研發,目前聚焦在邊緣網絡的整體架構設計、基于邊緣網絡的各種業務應用的設計和研發。
招聘職位:邊緣計算團隊誠招技術人才
https://yq.aliyun.com/articles/702657
點擊進入聚能聊答題,并圍觀大家的回答!
https://yq.aliyun.com/roundtable/497948
5月15日,我們給開發者的第20道面試題。
20.在云計算大數據處理場景中,每天運行著成千上萬的任務,每個任務都要進行IO讀寫。存儲系統為了更好的服務,經常會保證高優先級的任務優先執行。當多個作業或用戶訪問存儲系統時,如何保證優先級和公平性。
阿里巴巴出題專家:田磊磊
2010年加入阿里云存儲團隊,專注于分布式存儲領域,NFS協議,數據一致性,高性能等;先后參與過分布式存儲,kv系統,NFS協議相關的開發;目前為廣大公共云用戶提供穩定,高可靠,高可用,高性能的文件存儲服務(NAS)。
招聘職位: 存儲類技術崗位
https://yq.aliyun.com/articles/701229
點擊進入聚能聊答題,并圍觀大家的回答!
https://yq.aliyun.com/roundtable/497718
5月14日,我們給開發者的第18~19道面試題。
19.你理解常見如阿里,和友商大數據平臺的技術體系差異以及發展趨勢和技術瓶頸,在存儲和計算兩個方面進行概述。
18.對大數據平臺中的元數據管理是怎么理解的,元數據收集管理體系是怎么樣的,會對大數據應用有什么樣的影響。
阿里巴巴出題專家:映泉
阿里巴巴高級技術專家,在阿里云智能事業群-計算平臺事業部-通用計算平臺-生產力與對外輸出負責人,負責阿里EB級大規模分布式數據處理平臺-MaxCompute整個研發團隊的生產力建設,產品發布,產品質量, 產品技術的對外輸出等工作。 將阿里大數據平臺旗艦產品MaxCompute以產品和技術方案輸出的方式應用于數據分析、挖掘、商業智能等領域,已經形成對所有主要行業的輸出覆蓋并以重點產品支撐一些關鍵國計民生項目。所負責的領域包括產品技術輸出,數據上云,計算開發者支持,部署架構演進,和更多開源系統進行融合,行業解決方案與大數據計算平臺的整合,推動MaxCompute向普惠大數據發展,從而使得所有人用的起,用的上大數據計算并讓數據發揮出其最大價值,為智能性社會建設做出貢獻。誠招技術功底較好,對大數據技術和產品建設有熱情,有推動力的優秀人才加盟。
招聘職位: MaxCompute技術崗位
https://yq.aliyun.com/articles/702296
點擊進入聚能聊答題,并圍觀大家的回答!
https://yq.aliyun.com/roundtable/497718
5月13日,我們給開發者的第17道面試題。
17.請分析MaxCompute產品與分布式技術的關系、當前大數據計算平臺類產品的市場現狀和發展趨勢。
阿里巴巴出題專家:云郎
阿里巴巴大數據計算服務MaxCompute高級產品專家,做為MaxCompute產品和運營團隊帶頭人,和團隊共同致力于提供基于阿里云的大數據計算平臺,幫助企業構建云數據倉庫和數據湖, 滿足企業在大數據分析方面日益增長的數據量、計算量成為常態的情況下,對低成本、高性能、穩定、安全可靠和易用方面的要求,促進大數據普惠社會的實現。
招聘職位: MaxCompute高級產品專家
https://yq.aliyun.com/articles/702296
點擊進入聚能聊答題,并圍觀大家的回答!
https://yq.aliyun.com/roundtable/497718
5月12日,我們給開發者的第16道面試題。
16.一顆現代處理器,每秒大概可以執行多少條簡單的MOV指令,有哪些主要的影響因素?
阿里巴巴出題專家:子團
阿里云創新產品虛擬化&穩定性資深技術專家。2013年加入阿里云, 目前在負責創新平臺的系統虛擬化業務, 阿里云歷次虛擬化架構升級的核心貢獻者之一。帶領團隊構建了一套性能、成本、穩定性都處于業界領先的虛擬化系統,從而完成了阿里云百萬規模客戶的支撐。 同時也是阿里巴巴電商、金融業務上云、SAP HANA認證等多個重大項目的虛擬化部分負責人。
招聘職位:阿里云-GPU虛擬化研發高級專家
https://job.alibaba.com/zhaopin/position_detail.htm
點擊進入聚能聊答題,并圍觀大家的回答!
https://yq.aliyun.com/roundtable/497718
5月10日,我們給開發者的第15道面試題。
15.請計算XILINX公司VU9P芯片的算力相當于多少TOPS,給出計算過程與公式。
阿里巴巴出題專家:隱達
FPGA異構計算資深專家,2007年即作為芯片架構師,成功開發兩款規模分別超過3500萬門的ASIC芯片,達到了當時最先進的45nm工藝的極限。在FPGA/ASIC以及硬件設計領域有超過20年的工作經驗,對于超大規模FPGA設計開發、ASIC開發與原型驗證以及FPGA在數據中心中的加速價值有著深刻的理解和豐富的經驗。
招聘職位:阿里云-GPU虛擬化研發高級專家
https://job.alibaba.com/zhaopin/position_detail.htm
點擊進入聚能聊答題,并圍觀大家的回答!
https://yq.aliyun.com/roundtable/497718
5月9日,我們給開發者的第14道面試題。
14.關于并行計算的一些基本開放問題
阿里巴巴出題專家:何萬青
點擊進入聚能聊答題,并圍觀大家的回答!
https://yq.aliyun.com/roundtable/497613
5月8日,我們給開發者的第13道面試題。
13.如何實現兩金額數據相加(最多小數點兩位)
阿里巴巴出題專家:御術
數據可視化高級技術專家,從 ECharts 創始人到 AntV 產品架構師、螞蟻金服數據可視化方向負責人,多年來一直積極推進國內數據可視化技術建設,現任螞蟻金服-平臺數據技術事業群-體驗技術部-平臺前端技術部 Leader,帶領團隊維護著 Ant Design、AntV、UmiJS、Dva 等多個領域知名的開源項目,負責著螞蟻金服核心中臺應用以及螞蟻金融科技產品的前端研發工作。
招聘職位:資深前端研發工程師
https://yq.aliyun.com/articles/701940
點擊進入聚能聊答題,并圍觀大家的回答!
https://yq.aliyun.com/roundtable/497613
5月7日,我們給開發者的第10~12道面試題。
12.有一批氣象觀測站,現需要獲取這些站點的觀測數據,并存儲到Hive中。但是氣象局只提供了api查詢,每次只能查詢單個觀測點。那么如果能夠方便快速地獲取到所有的觀測點的數據?
11.現有一批郵件需要發送給訂閱顧客,且有一個集群(集群的節點數不定,會動態擴容縮容)來負責具體的郵件發送任務,如何讓系統盡快地完成發送?請詳述技術方案!
10.解釋下為什么鹿晗發布戀情的時候,微博系統會崩潰,如何解決?!
阿里巴巴出題專家:江嵐
阿里云數據技術高級技術專家,2010年畢業后加入阿里,一直在數據部門從事數據研發的工作。目前就職于數據技術產品部的數據建設平臺,負責Dataphin智能建模的后臺研發。
招聘職位:阿里數據研發工程師
https://yq.aliyun.com/articles/701691
點擊進入聚能聊答題,并圍觀大家的回答!
https://yq.aliyun.com/roundtable/497613
5月6日,我們給開發者的第9道面試題。
09.輸入ping IP后敲回車,發包前會發生什么?
阿里巴巴出題專家:懷虎
阿里云云效平臺負責人,DevOps資深專家,譯有《微服務設計》。曾在ThoughtWorks任職軟件交付和敏捷顧問;對持續集成、自動化測試有豐富經驗;目前專注于持續交付SaaS產品的開發,提供精益需求管理、軟件設計、敏捷轉型相關咨詢服務。
招聘職位:阿里云研發效能研發工程師
https://yq.aliyun.com/articles/701658
點擊進入聚能聊答題,并圍觀大家的回答!
https://yq.aliyun.com/roundtable/497613
5月5日,我們給開發者的第8道面試題。
08.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相關協議開發。
招聘職位:阿里云存儲技術專家
https://yq.aliyun.com/articles/700623
點擊進入聚能聊答題,并圍觀大家的回答!
https://yq.aliyun.com/roundtable/497267
4月28日,我們給開發者的第6~7道面試題。
06. 從innodb的索引結構分析,為什么索引的key長度不能太長
07. MySQL的數據如何恢復到任意時間點
阿里巴巴出題專家:近秋
阿里云數據庫產品技術部技術專家,有6年的行業從業經驗。2016年加入阿里云,目前負責最流行的開源數據庫MySQL在阿里云的商業化的工作。
招聘職位:阿里云數據庫技術專家
https://yq.aliyun.com/articles/700623
點擊進入聚能聊答題,并圍觀大家的回答!
https://yq.aliyun.com/roundtable/497267
4月26日,我們給開發者的第5道面試題。
05.關于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的研發及社區生態。
招聘職位:阿里云中間件技術專家
https://yq.aliyun.com/articles/700243
點擊進入聚能聊答題,并圍觀大家的回答!
https://yq.aliyun.com/roundtable/497267
4月25日,我們給開發者的第2~4道面試題。
02.已知sqrt(2)約等于1.414,要求不用數學庫,求sqrt(2)精確到小數點后10位
考察點:
03. 給定一個二叉搜索樹(BST),找到樹中第K小的節點
考察點:
示例
如下圖,輸入K=3, 輸出節點值3
說明
保證輸入的K滿足1<=K<=(節點數目)
04.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實現的基本原理和數據結構的理解。
阿里巴巴出題專家:文景
阿里云CDN資深技術專家,浙大碩士,在高性能服務端產品開發、穩定性、服務質量優化及成本優化等各項功能都有10年以上的經驗。在網易杭州研究院負責底層開源軟件研發,國內最早核心Nginx研發人員之一,曾任tengine研發負責人,熱衷于參與開源項目。
現在是CDN技術負責人,連續7年服務雙11,保障整個阿里集團95%以上的流量分發穩定性。從2014年開始,從0到1構建阿里云CDN的商業化基礎設施,包括點播、直播、動態、安全加速等各項產品線,阿里云CDN現在是中國用戶數最多的CDN、也是國內規模最大的CDN。正在將CDN打造成互聯網的基礎設施,為全球用戶提供接入、加速、安全的穩定服務。
招聘職位:點此進入查看CDN大量職位并投遞簡歷
https://yq.aliyun.com/articles/699997
點擊進入聚能聊答題,并圍觀大家的回答!
https://yq.aliyun.com/roundtable/497267
4月24日,我們給開發者的第1道面試題。
01. 如何實現一個高效的單向鏈表逆序輸出?
阿里巴巴出題專家:昀龍
阿里云彈性人工智能負責人,帶領團隊研發了同時支持Tensorflow、MXNET、PyTorch、Caffe的Perseus加速框架,曾獲得Dawnbench推理世界競賽的性能第一和成本最低雙料冠軍。曾任阿里云彈性高性能計算、超級計算集群技術架構師,獲得過多項專利,擁有10年以上AI技術研發和高性能優化經驗。精通針對CPU、GPU、MIC等微架構的計算性能優化以及網絡、存儲等系統性能優化。曾在英特爾SSG部門工作,并獲得過英特爾中國最高成就獎(ICA)。當人工智能遇上云計算,未來不可限量,歡迎加入阿里云彈性人工智能團隊。
招聘職位:阿里云-GPU虛擬化研發高級專家
https://job.alibaba.com/zhaopin/position_detail.htm
點擊進入聚能聊答題,并圍觀大家的回答!
https://yq.aliyun.com/roundtable/497138
更多面試真題陸續放出,敬請期待!
劉書遠