阿里面試題合集118道送答案(新總結):天貓+螞蟻金服+阿里巴巴
每一年的雙11,都是阿里新技術的演練場,也是阿里技術人一年一度的大秀秀場。
作為國內網際網路技術的典型代表,阿里巴巴的技術一直備受著大家的關注。能進入阿里工作,是很多開發者們的目標與夢想,為幫助開發者們提升面試技能、高效通關一線網際網路公司的面試,我們走訪了多位阿里巴巴資深技術專家以及阿里高階Java候選人,提煉總結了這份面試真題,一次整體放出送給大家。
看看自己能答對多少,如果能回答70%的題目,就大膽去阿里以及各網際網路公司試試身手吧。
本篇建議大家收藏、備用~ 需要資料的可以關注+轉發後新增下方VX即可
【阿里、天貓、螞蟻面試題目】
涵蓋:開源、Java集合、JVM、NIO、Dubbo、秒殺系統、高併發、分散式、鎖、redis、MySQL、Linux、hashMap、中介軟體等。
- 自我介紹及工作經歷
- 自己優勢技術在哪些方面(釘釘)
- 用過哪些中介軟體。
- 做過工作流引擎沒有。
- NIO的底層實現。
- JVM基礎(必問),JVM GC原理,JVM怎麼實現回收記憶體。
- 執行緒池原理(天貓、螞蟻)
- 鎖的機制升降級(天貓、螞蟻)
- Dubbo的原理,序列化相關問題。
- Dubbo如何一條連結併發多個呼叫。
- 分散式事務一致性。
- 從系統層面考慮,分散式從哪些緯度考慮(天貓)
- 微信紅包怎麼實現。
- 海量資料分析。
- API介面與SDI介面的區別(API是提供給別人的介面)。
- Hadoop底層怎麼實現(天貓)
- threadLocal,執行緒池,hashMap/hashTable/coccurentHashMap等(天貓)
- 秒殺系統的設計(天貓)
- 虛擬機器,IO相關知識點(天貓)
- Linux的命令(天貓)
- 一個整形陣列,給定一個數,在陣列中找出兩個數的和等於這個數,並打印出來,我寫的時間複雜度高,要求O(n)。(天貓)
- n個整數,找出連續的m個數加和是最大。(天貓)
- 更重視開源技術(螞蟻金服上海)
- 1000個執行緒同時執行,怎麼防止不卡(航旅)
- 並列的併發消費問題(航旅)
- 高併發量大的話怎麼處理熱點,資料等(螞蟻金服)
- 如何獲取一個本地伺服器上可用的埠
- 流量控制相關問題(螞蟻金服)
- 資料庫TPS是多少,是否進行測試過(天貓)
- 資料庫鎖隱原理(螞蟻金服網商)
- 分散式鎖,redis快取,spring aop,系統架構圖,MySQL的特性(資訊平臺)
- 快取擊穿有哪些方案解決(天貓)
- Java怎麼挖取回收器相關原理(財富)
- Java的集合都有哪些,都有什麼特點(資訊平臺)
- 場景,同時給10萬個人發工資,怎麼樣設計併發方案,能確保在1分鐘內全部發完 打個比方會提出類似的場景(資訊平臺)
【阿里巴巴面試題目】
涵蓋:一致性雜湊演算法、CAP、session、執行緒池、反射機制、http協議、Java虛擬機器、分散式系統、TCP/IP、OSI、棧、堆、分散式系統設計等。
- Java事件機制包括哪三個部分?分別介紹下。
- 使用執行緒池的原因?
- 執行緒池的作用有哪些?
- 幾種常見的執行緒池及其各自的使用場景是怎樣的。
- 執行緒池都有哪幾種工作佇列?
- 怎麼理解無界佇列和有界佇列?
- 執行緒池中的幾種重要的引數及流程說明。
- 什麼是反射機制?
- 說說反射機制的作用。
- 反射機制會不會有效能問題?
- 你怎麼理解http協議?
- 說說http協議的工作流程。
- http有哪些請求提交方式?
- http中的200,302,403,404,500,503都代表什麼狀態?
- http get和post有什麼區別?
- 你怎麼理解cookie和session,有哪些不同點?
- 什麼是web快取?有什麼優點?
- 什麼是https,說說https的工作原理?
- 什麼是http代理伺服器,有什麼用?
- 什麼是虛擬主機及實現原理?
- 什麼是Java虛擬機器,為什麼要使用?
- 說說Java虛擬機器的生命週期及體系結構。
- 說一說Java記憶體區域。
- 什麼是分散式系統?
- 分散式系統你會考慮哪些方面?
- 為什麼說TCP/IP協議是不可靠的?
- OSI有哪七層模型?TCP/IP是哪四層模型。
- 講一講TCP協議的三次握手和四次揮手流程。
- 為什麼TCP建立連線協議是三次握手,而關閉連線卻是四次握手呢?為什麼不能用兩次握手進行連線?
- 為什麼TCP TIME_WAIT狀態還需要等2MSL後才能返回到CLOSED狀態?
- 什麼是DoS、DDoS、DRDoS攻擊?如何防禦?
- 描述一下Java異常層次結構。
- 什麼是檢查異常,不受檢查異常,執行時異常?並分別舉例說明。
- finally塊一定會執行嗎?
- 正常情況下,當在try塊或catch塊中遇到return語句時,finally語句塊在方法返回之前還是之後被執行?
- try、catch、finally語句塊的執行順序。
- Java虛擬機器中,資料型別可以分為哪幾類?
- 怎麼理解棧、堆?堆中存什麼?棧中存什麼?
- 為什麼要把堆和棧區分出來呢?棧中不是也可以儲存資料嗎?
- 在Java中,什麼是是棧的起始點,同是也是程式的起始點?
- 為什麼不把基本型別放堆中呢?
- Java中的引數傳遞時傳值呢?還是傳引用?
- Java中有沒有指標的概念?
- Java中,棧的大小通過什麼引數來設定?
- 一個空Object物件的佔多大空間?
- 物件引用型別分為哪幾類?
- 講一講垃圾回收演算法。
- 如何解決記憶體碎片的問題?
- 如何解決同時存在的物件建立和物件回收問題?
- 講一講記憶體分代及生命週期。
- 什麼情況下觸發垃圾回收?
- 如何選擇合適的垃圾收集演算法?
- JVM有哪三種垃圾回收器?
- JVM中最大堆大小有沒有限制?
- 如何進行JVM調優?有哪些方法?
- 堆大小通過什麼引數設定?
- 吞吐量優先選擇什麼垃圾回收器?響應時間優先呢?
- 如何理解記憶體洩漏問題?有哪些情況會導致記憶體洩露?如何解決?
- 從分散式系統部署角度考慮,分哪幾層?
- 如何解決業務層的資料訪問問題?
- 為了解決資料庫伺服器的負擔,如何做資料庫的分佈?
- 什麼是著名的拜占庭將軍問題?
- 講講CAP理念。
- 怎麼理解強一致性、單調一致性和最終一致性?
- 分散式系統設計你會考慮哪些策略?
- 最常見的資料分佈方式是什麼?
- 談一談一致性雜湊演算法。
- paxos是什麼?
- 什麼是Lease機制?
- 如何理解選主演算法?
【阿里巴巴面試題目含答案】
1.mysql的三大引擎是啥?
mysql常用的引擎有InnoDB,MyISAM,Memory,預設是InnoDB
InnoDB:磁碟表,支援事務,支援行級鎖,B+Tree索引
ps:優點: 具有良好的ACID特性。適用於高併發,更新操作比較多的表。需要使用事務的表。對自動災難恢復有要求的表。
缺點:讀寫效率相對MYISAM比較差。佔用的磁碟空間比較大。
mysql的4大特性+4種隔離級別:
MyISAM:磁碟表,不支援事務,支援表級鎖,B+Tree索引
ps: 優點:佔用空間小,處理速度快(相對InnoDB來說)
缺點:不支援事務的完整性和併發性
MEMORY(Heap):記憶體表,不支援事務,表級鎖,Hash索引,不支援Blob,Text大型別
ps: 優點:速度要求快的,臨時資料
缺點:丟失以後,對專案整體沒有或者負面影響不大的時候。
2.redis的hash演算法用的是啥?
redis應該是使用一致性hash演算法---MurmurHash3 演算法,具有低碰撞率優點,google改進的版本cityhash也是redis中用到的雜湊演算法。
現有的主流的大資料系統都是用的 MurmurHash本身或者改進。
3.nosql為啥比sql快?
Nosql是非關係型資料庫,因為不需要滿足關係資料庫資料一致性等複雜特性所以速度快;
sql是關係型資料庫,功能強大,但是效率上有瓶頸。
4.什麼是索引為啥nosql沒索引?nosql有索引滴
索引分為聚簇索引和非聚簇索引兩種,聚簇索引是按照資料存放的物理位置為順序的,而非聚簇索引就不一樣了;聚簇索引能提高多行檢索的速度,而非聚簇索引對於單行的檢索很快。
聚簇索引:有主鍵時,根據主鍵建立聚簇索引;沒有主鍵時,會用一個唯一且不為空的索引列做為主鍵,成為此表的聚簇索引;如果以上兩個都不滿足那innodb自己建立一個虛擬的聚集索引
非聚簇索引:非聚簇索引都是輔助索引,像複合索引、字首索引、唯一索引。
5.B+樹和B樹區別?
B樹的非葉子節點儲存實際記錄的指標,而B+樹的葉子節點儲存實際記錄的指標
B+樹的葉子節點通過指標連起來了, 適合掃描區間和順序查詢。
【阿里巴巴面試經驗總結】
總結下來,阿里集團各子公司的面試題目主要集中在:
- Java高階(虛擬機器、併發執行緒、NIO等)。
- 中介軟體環節也是必問,特別喜歡問Redis的資料儲存、持久化、叢集等。
- 後端重點就是MySQL資料庫的掌握情況,從索引、sql慢查詢、長事務等效能優化入手面試。
- 自己實操過的專案,要提前覆盤下,也是必問的,從容從設計,到編碼,以及後續的部署等,如果都能快速回答,可以給面試官留下好的印象。
- 平時多積累點演算法的面試題目,涉及到的主要在大資料的範圍。
- 類似秒殺這樣的併發專案,也一定要準備,這裡會考你對高併發場景的技術知識點掌握。
- 建議全程保持微笑,即便遇見不會的問題,坦然回答,建議面試完虛心請教面試官(留下好的學習印象)。
以上,是阿里系高階Java研發的最新面試題118道目,面試題目涉及範圍比較廣泛,從技術基礎到專案經驗,從技術廣度到技術深度,全方位深度挖掘候選人的技能水平。建議大家在參加任何一家公司的面試之前,都要多花時間溫故而知新,準備充分,這樣在面試過程中會從容很多,也能提高拿到offer的概念。
覺得有用請點贊支援下,謝謝。
送大家【阿里高階Java必考題目與答案】用於參考
阿里高階部分Java題目與答案:阿里巴巴、螞蟻金服、天貓、淘寶等