一直有個大廠的心,復工回來,就開始看大廠機會,有幸接到了阿里的面試,非常榮幸,很快就拿到了Offer,一個字就是"爽" 經歷了三輪技術面和一輪Hr面,面試官們都非常nice,爲了幫助更多人想進阿里巴巴的同學完成夢想,特地整理了面試的問題,給大家一些建議,希望大家也能拿到自己心儀的Offer
阿里一面:
- 介紹一下自己。
- 項目參與的核心設計有哪些
- java反射原理, 註解原理?
- ArrayList和LinkedList的插入和訪問的時間複雜度?
- 說說一致性 Hash 原理
- HashMap及線程安全的ConcurrentHashMap,以及各自優劣勢
- https和http區別,有沒有用過其他安全傳輸手段?
- SQL優化,常用的索引?
- 請詳細描述springmvc處理請求全流程?
- 項目用 Spring 比較多,有沒有了解 Spring 的原理?AOP 和 IOC 的原理
- 1.8還採用了紅黑樹,講講紅黑樹的特性,爲什麼人家一定要用紅黑樹而不是AVL、B樹之類的?
- 線程池的工作原理,幾個重要參數,然後給了具體幾個參數分析線程池會怎麼做,最後問阻塞隊列的作用是什麼?
- Synchronized和Lock哪個更好?
- ArrayList和LinkedList底層
阿里二面:
- 先直接問做過哪些Java開發相關的項目。
- 數據庫索引,底層是怎樣實現的,爲什麼要用B樹索引?
- Mysql主從同步的實現原理?
- 兩個10G的文件,裏面是一些url,內存只有1G,如何將這兩個文件合併,找到相同的url?
- 代碼題:兩個有序數組,數組中存在重複數字,合併成一個有序數組,去除重複數字。
- 有使用過哪些NoSQL數據庫?MongoDB和Redis適用哪些場景?
- 描述分佈式事務之TCC服務設計?
- Redis 的 list zset 的底層實現
- 分佈式 session 的共享方案有哪些,有什麼優劣勢
- 從千萬的數據到億級的數據,會面臨哪些技術挑戰?你的技術解決思路?
- 排序算法的複雜度,快速排序非遞歸實現。
阿里三面:
- jvm性能調優都做了什麼
- 分佈式系統原理:CAP,最終一致性,冪等操作等
- 高併發情況下,我們系統是如何支撐大量的請求的
- 什麼情況會出現雪崩,以及如何應對?
- 集羣監控的時候,重點需要關注哪些技術指標?這些指標如何優化?
- 分佈式架構設計哪方面比較熟悉
- 介紹你實踐的性能優化案例,以及你的優化思路
- 談談分佈式鎖、以及分佈式全局唯一ID的實現比較?
- 談一個你覺得你學到最多的項目,使用了什麼技術,挑戰在哪裏
- 最近兩年遇到的最大的挫折,從挫折中學到了什麼?
阿里四面
- 項目介紹
- 聽到說做了限流,限流標準(併發數? qps?併發數和qps關係?說出了5種限流方案和對應算法原理)
- dubbo調用端怎麼在jvm中生成對應服務?dubbo服務端和調用端超時時間設置和區別、dubbo長連接。
- mysql行鎖最大併發數?(秒殺項目指出)
- 設計秒殺系統,我說的異步的方式,會問怎麼優化?改爲了同步的方式,異步和同步區別? 然後我也問了阿里那邊
- 碰到哪些技術難點?怎麼解決?有沒有參考其他大廠?其他大廠方案什麼樣的?有沒有關注阿里這邊最新的技術?
- 剛剛的秒殺系統,會涉及到多個庫表的更新,分佈式事務怎麼解決,我說的消息最終一致性,異步?有沒有更好的方案?同步TCC方式,TCC方式原理?(三個階段的具體實現)
HR面
- 自我介紹
- 如何學習新技術?
- 如何團隊合作的?
- 職業規劃
由於文章的篇幅有限,所以這次的阿里面試題答案整理在了PDF文檔裏
整理了一套 2020 最新的 Java 面試題,基本上覆蓋了所有的面試知識點,包括的內容如下:
Java基礎,容器,多線程,反射,Java web模塊,網絡,設計模式,SpringMVC,SpringBoot,SpringCloud,Hibernate,Mybatis,中間件(RabbitMQ,Kafaka,Zookeeper),數據庫(MySQL,Redis)和JVM等相關內容。
需要獲取得話麻煩一鍵三連之後看下圖小助理的微信:(13210158912)添加即可免費獲取到哦
如果大家看的還不過癮,再來份美團架構師總結的面試知識點,看完兩份BAT so easy!