1. 程式人生 > 實用技巧 >阿里面試題合集118道送答案(新總結):天貓+螞蟻金服+阿里巴巴

阿里面試題合集118道送答案(新總結):天貓+螞蟻金服+阿里巴巴

每一年的雙11,都是阿里新技術的演練場,也是阿里技術人一年一度的大秀秀場。

作為國內網際網路技術的典型代表,阿里巴巴的技術一直備受著大家的關注。能進入阿里工作,是很多開發者們的目標與夢想,為幫助開發者們提升面試技能、高效通關一線網際網路公司的面試,我們走訪了多位阿里巴巴資深技術專家以及阿里高階Java候選人,提煉總結了這份面試真題,一次整體放出送給大家。

看看自己能答對多少,如果能回答70%的題目,就大膽去阿里以及各網際網路公司試試身手吧。

本篇建議大家收藏、備用~ 需要資料的可以關注+轉發後新增下方VX即可

【阿里、天貓、螞蟻面試題目】

涵蓋:開源、Java集合、JVM、NIO、Dubbo、秒殺系統、高併發、分散式、鎖、redis、MySQL、Linux、hashMap、中介軟體等。

  1. 自我介紹及工作經歷
  2. 自己優勢技術在哪些方面(釘釘)
  3. 用過哪些中介軟體。
  4. 做過工作流引擎沒有。
  5. NIO的底層實現。
  6. JVM基礎(必問),JVM GC原理,JVM怎麼實現回收記憶體。
  7. 執行緒池原理(天貓、螞蟻)
  8. 鎖的機制升降級(天貓、螞蟻)
  9. Dubbo的原理,序列化相關問題。
  10. Dubbo如何一條連結併發多個呼叫。
  11. 分散式事務一致性。
  12. 從系統層面考慮,分散式從哪些緯度考慮(天貓)
  13. 微信紅包怎麼實現。
  14. 海量資料分析。
  15. API介面與SDI介面的區別(API是提供給別人的介面)。
  16. Hadoop底層怎麼實現(天貓)
  17. threadLocal,執行緒池,hashMap/hashTable/coccurentHashMap等(天貓)
  18. 秒殺系統的設計(天貓)
  19. 虛擬機器,IO相關知識點(天貓)
  20. Linux的命令(天貓)
  21. 一個整形陣列,給定一個數,在陣列中找出兩個數的和等於這個數,並打印出來,我寫的時間複雜度高,要求O(n)。(天貓)
  22. n個整數,找出連續的m個數加和是最大。(天貓)
  23. 更重視開源技術(螞蟻金服上海)
  24. 1000個執行緒同時執行,怎麼防止不卡(航旅)
  25. 並列的併發消費問題(航旅)
  26. 高併發量大的話怎麼處理熱點,資料等(螞蟻金服)
  27. 如何獲取一個本地伺服器上可用的埠
  28. 流量控制相關問題(螞蟻金服)
  29. 資料庫TPS是多少,是否進行測試過(天貓)
  30. 資料庫鎖隱原理(螞蟻金服網商)
  31. 分散式鎖,redis快取,spring aop,系統架構圖,MySQL的特性(資訊平臺)
  32. 快取擊穿有哪些方案解決(天貓)
  33. Java怎麼挖取回收器相關原理(財富)
  34. Java的集合都有哪些,都有什麼特點(資訊平臺)
  35. 場景,同時給10萬個人發工資,怎麼樣設計併發方案,能確保在1分鐘內全部發完 打個比方會提出類似的場景(資訊平臺)

【阿里巴巴面試題目】

涵蓋:一致性雜湊演算法、CAP、session、執行緒池、反射機制、http協議、Java虛擬機器、分散式系統、TCP/IP、OSI、棧、堆、分散式系統設計等。

  1. Java事件機制包括哪三個部分?分別介紹下。
  2. 使用執行緒池的原因?
  3. 執行緒池的作用有哪些?
  4. 幾種常見的執行緒池及其各自的使用場景是怎樣的。
  5. 執行緒池都有哪幾種工作佇列?
  6. 怎麼理解無界佇列和有界佇列?
  7. 執行緒池中的幾種重要的引數及流程說明。
  8. 什麼是反射機制?
  9. 說說反射機制的作用。
  10. 反射機制會不會有效能問題?
  11. 你怎麼理解http協議?
  12. 說說http協議的工作流程。
  13. http有哪些請求提交方式?
  14. http中的200,302,403,404,500,503都代表什麼狀態?
  15. http get和post有什麼區別?
  16. 你怎麼理解cookie和session,有哪些不同點?
  17. 什麼是web快取?有什麼優點?
  18. 什麼是https,說說https的工作原理?
  19. 什麼是http代理伺服器,有什麼用?
  20. 什麼是虛擬主機及實現原理?
  21. 什麼是Java虛擬機器,為什麼要使用?
  22. 說說Java虛擬機器的生命週期及體系結構。
  23. 說一說Java記憶體區域。
  24. 什麼是分散式系統?
  25. 分散式系統你會考慮哪些方面?
  26. 為什麼說TCP/IP協議是不可靠的?
  27. OSI有哪七層模型?TCP/IP是哪四層模型。
  28. 講一講TCP協議的三次握手和四次揮手流程。
  29. 為什麼TCP建立連線協議是三次握手,而關閉連線卻是四次握手呢?為什麼不能用兩次握手進行連線?
  30. 為什麼TCP TIME_WAIT狀態還需要等2MSL後才能返回到CLOSED狀態?
  31. 什麼是DoS、DDoS、DRDoS攻擊?如何防禦?
  32. 描述一下Java異常層次結構。
  33. 什麼是檢查異常,不受檢查異常,執行時異常?並分別舉例說明。
  34. finally塊一定會執行嗎?
  35. 正常情況下,當在try塊或catch塊中遇到return語句時,finally語句塊在方法返回之前還是之後被執行?
  36. try、catch、finally語句塊的執行順序。
  37. Java虛擬機器中,資料型別可以分為哪幾類?
  38. 怎麼理解棧、堆?堆中存什麼?棧中存什麼?
  39. 為什麼要把堆和棧區分出來呢?棧中不是也可以儲存資料嗎?
  40. 在Java中,什麼是是棧的起始點,同是也是程式的起始點?
  41. 為什麼不把基本型別放堆中呢?
  42. Java中的引數傳遞時傳值呢?還是傳引用?
  43. Java中有沒有指標的概念?
  44. Java中,棧的大小通過什麼引數來設定?
  45. 一個空Object物件的佔多大空間?
  46. 物件引用型別分為哪幾類?
  47. 講一講垃圾回收演算法。
  48. 如何解決記憶體碎片的問題?
  49. 如何解決同時存在的物件建立和物件回收問題?
  50. 講一講記憶體分代及生命週期。
  51. 什麼情況下觸發垃圾回收?
  52. 如何選擇合適的垃圾收集演算法?
  53. JVM有哪三種垃圾回收器?
  54. JVM中最大堆大小有沒有限制?
  55. 如何進行JVM調優?有哪些方法?
  56. 堆大小通過什麼引數設定?
  57. 吞吐量優先選擇什麼垃圾回收器?響應時間優先呢?
  58. 如何理解記憶體洩漏問題?有哪些情況會導致記憶體洩露?如何解決?
  59. 從分散式系統部署角度考慮,分哪幾層?
  60. 如何解決業務層的資料訪問問題?
  61. 為了解決資料庫伺服器的負擔,如何做資料庫的分佈?
  62. 什麼是著名的拜占庭將軍問題?
  63. 講講CAP理念。
  64. 怎麼理解強一致性、單調一致性和最終一致性?
  65. 分散式系統設計你會考慮哪些策略?
  66. 最常見的資料分佈方式是什麼?
  67. 談一談一致性雜湊演算法。
  68. paxos是什麼?
  69. 什麼是Lease機制?
  70. 如何理解選主演算法?

【阿里巴巴面試題目含答案】

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+樹的葉子節點通過指標連起來了, 適合掃描區間和順序查詢。

【阿里巴巴面試經驗總結】

總結下來,阿里集團各子公司的面試題目主要集中在:

  1. Java高階(虛擬機器、併發執行緒、NIO等)。
  2. 中介軟體環節也是必問,特別喜歡問Redis的資料儲存、持久化、叢集等。
  3. 後端重點就是MySQL資料庫的掌握情況,從索引、sql慢查詢、長事務等效能優化入手面試。
  4. 自己實操過的專案,要提前覆盤下,也是必問的,從容從設計,到編碼,以及後續的部署等,如果都能快速回答,可以給面試官留下好的印象。
  5. 平時多積累點演算法的面試題目,涉及到的主要在大資料的範圍。
  6. 類似秒殺這樣的併發專案,也一定要準備,這裡會考你對高併發場景的技術知識點掌握。
  7. 建議全程保持微笑,即便遇見不會的問題,坦然回答,建議面試完虛心請教面試官(留下好的學習印象)。

以上,是阿里系高階Java研發的最新面試題118道目,面試題目涉及範圍比較廣泛,從技術基礎到專案經驗,從技術廣度到技術深度,全方位深度挖掘候選人的技能水平。建議大家在參加任何一家公司的面試之前,都要多花時間溫故而知新,準備充分,這樣在面試過程中會從容很多,也能提高拿到offer的概念。

覺得有用請點贊支援下,謝謝

送大家【阿里高階Java必考題目與答案】用於參考

阿里高階部分Java題目與答案:阿里巴巴、螞蟻金服、天貓、淘寶等

需要這份資料的可以轉發+關注後 掃碼新增下方VX即可獲取