天天看點

阿裡118道面試題合集:天貓+螞蟻金服+阿裡巴巴【阿裡、天貓、螞蟻面試題目】【阿裡巴巴面試題目】【阿裡巴巴面試題目含答案】【阿裡巴巴面試經驗總結】

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

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

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

本篇建議大家收藏、備用~

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

涵蓋:開源、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必考題目與答案】用于參考,,需要擷取資料文檔的朋友 可以關注+轉發後點選這裡免費領取

阿裡118道面試題合集:天貓+螞蟻金服+阿裡巴巴【阿裡、天貓、螞蟻面試題目】【阿裡巴巴面試題目】【阿裡巴巴面試題目含答案】【阿裡巴巴面試經驗總結】