天天看點

五面拿下阿裡飛豬offer,阿裡巴巴面試真題2021最新版

昨天度過了一個狗糧吃到飽的浪漫節日,不知道在座各位過的開不開心呢?錢包有沒有空呢?有沒有勇敢的和喜歡的人表白呢?還是一個人在公司加班呢?

疫情過去,真正的春暖花開又回來了,時不時的可以和朋友約個飯,感慨今年的工作競争壓力很大,工作很不好找。作為一個開發人員,你是否面上了理想的公司,拿到了理想中的薪資?

作為程式員,跳槽就是最好的漲薪方式。前提當然是你有足夠實力,而不是隻會紙上談兵。面試準備不充分,就是浪費時間,更是對自己不負責任。

今天給大家分享一份由粉絲投稿,我精心整理出來的一份1200頁Java架構面試專題,絕大部分都是一線大廠的面試真題,可以根據這份面試專題查漏補缺,希望能夠幫助你盡快找到工作!

一面:

阿裡巴巴面試答案文末可以領取!

1. 觸發新生代GC,如果存活對象總量大于survivor區容量,咋辦

2. 如果任務很多,線程池的阻塞隊列會撐爆記憶體的哪個區域

3. 棧在堆上嗎

4. GC root有哪些

5. 執行個體變量可以是GC root嗎

6. 了解哪些GC算法,介紹一下

7. 給個場景,問怎麼設定JVM參數

8. 問了很多SQL調優,各種語句能不能命中索引,能命中哪些,怎麼優化

9. MySQL的一張表裡有三個字段ABC,A的種類有1000種,B有1W種,C有10W種,ABC的聯合索引怎麼設定,怎麼使用

10. Mybatis # 和 $ 的差別

11. Mybatis接口裡的方法和XML裡的SQL名可以不一樣嗎,不一樣怎麼辦

12. Mybatis是如何完成SQL和接口裡的方法的映射的(我回答了怎麼配置),那你知道它是怎麼實作的嗎

13. 介紹下Spring的 IOC和AOP

14. 伺服器給用戶端發送IO流的過程

15. IO和NIO了解多少

16. 線程都有哪些狀态,怎麼轉換的

17. Notify和notifyAll的差別

18. 介紹線程池,不同線程池差別在哪,你平時怎麼使用線程池的

19. MySQL索引的資料結構

20. B+樹了解多少

21. Cookie和SessionId說一下

22. 鎖是怎麼實作的

23. Synchronized同步塊和synchronized方法,分别鎖的是什麼

24. 單例模式,餓漢和懶漢分别存在的問題

25. Volatile是怎麼實作可見性的

26. 介紹下JMM

27. Happen before了解嗎

28. A happen before B,意味着A一定在B之前執行嗎

29. 你做過的最難的項目中,最難的任務是什麼,怎麼解決的

二面:

1. 看過哪些源碼

2. Java都有哪些map,分别怎麼實作的,具體講

3. 除了LinkedHashMap,你還知道哪些有序map

4. ConcurrentHashMap講一講

5. 為什麼要有線程池

6. 線程池有哪幾類?有什麼差別?有哪些參數?拒絕政策有哪些

7. 阻塞隊列都有哪幾種,有什麼差別

8. Java的反射怎麼了解

9. Spring的IOC和AOP怎麼了解

10. Spring項目啟動的時候會加載哪些資源,順序是怎麼樣的

11. 浏覽器輸入一個URL,會發生什麼,整個過程說一下

12. Http講一講,請求有哪些内容,響應有哪些内容

三面(leader面):

1. MySQL的高可用了解多少,高性能了解多少

2. 淘寶有1000T的資料,單機存不下,怎麼辦?有沒有辦法隻通路一次伺服器?一緻性Hash懂多少

3. MySQL和redis有啥差別

4. MySQL資料備份怎麼做

5. Redis底層原理會多少

6. Redis為啥比MySQL快

7. Redis RDB可能會丢失資料,怎麼辦

8. Redis AOF不也要把日志寫到磁盤麼,那和MySQL的IO有啥差別,憑啥Redis就快

9. Redis主從複制怎麼做

10. 分布式緩存懂多少

11. 還知道其他NoSQL麼

12. Java和C的優缺點說一下

13. 有沒有用C寫過底層

14. Java的G1回收器詳細講一講

15. G1什麼時候會stop the world

16. Linux作業系統有應用過嗎

17. 對分布式和中間件掌握多少

18. 詳細介紹下你的項目

 四面:

1. 資料庫索引常用的資料結構

2. Juc源碼看過嗎?鎖的實作原理是什麼

3. CAS能深入的說一下嗎

4. 建造者模式說一下

5. 談一談筆試的心得(筆試分高)

6. 看過哪些書籍

7. 平時怎麼學習的

 五面(交叉面):

1. 介紹下項目,項目的來源,是自己一個人做的麼

2. 登入驗證怎麼做的

3. 講一講ThreadLocal

4. ThreadLocal怎麼避免線程污染

5. 點贊怎麼實作的

6. Redis持久化方式

7. MySQL存儲引擎差別

8. Myisam在隻讀場景下,為什麼一般比InnoDB快

9. Mybatis怎麼使用

11. Spring中BeanFactory和ApplicationContext的差別

12. Spring中bean的作用域有哪些,有什麼差別

13. 說出一個原型作用域的具體應用場景

14. 學習過哪些設計模式,用過哪些設計模式

15. 生産者消費者模式講一講

16. 怎麼實作阻塞隊列

17. 學過Linux嗎

18. 在Linux下,怎麼查找一個目錄下的所有檔案,要求輸出順序按照檔案的建立時間排序

19. 給你一堆學生的資訊,包括學号和姓名,讓你找出學号最靠前的10個人的姓名

20. PriorityQueue怎麼實作的

21. 怎麼求根号3(我說了二分法,用2的平方,1.5的平方,1.75的平方依次和3比較,縮小區間,直到達到精度要求)

22. 你這種求法太慢了,可以優化嗎(我問:您是想問數值分析的知識麼?面試官說:是的,你沒學過數值分析麼?)

23. 斐波那契數列,求第n項的值(答了遞歸和DP兩種方式)

24. 如果數列長度100W,你的DP矩陣不是很大麼?怎麼優化?(答:用兩個變量a,b記錄前兩個值,temp = a, a = b, b = a + temp,依次遞推)