前言
前兩個月有位澳洲留學生水友跟我說準備回國啦!當時向小編詢問了國內目前的情況,
然后前兩天該水友告訴我說拿下了阿里的offer了,所以小編連忙問下了面經,最后經過同意也可以分享給大家啦!本文將以第一人稱一起感受,
背景
澳洲Top2本,科班出身,Java后端開發,無大廠實習經歷,年底畢業,
看的出來,這位同學背景挺硬的

阿里一面(50分鐘)
- 資料庫鎖隱原理,
- 1000個執行緒同時運行,怎么防止不卡?
- 并列的并發消費問題,
- 高并發量大的話怎么處理熱點,資料等,
- 如何獲取一個本地服務器上可用的埠?
- 流量控制相關問題,
- 資料庫TPS是多少,是否進行測驗過?
- 快取擊穿有哪些方案解決?
- Java怎么挖取回收器相關原理?
- Java的集合都有哪些,都有什么特點?
- 分布式鎖,redis快取,spring aop,系統架構圖,MySQL的特性,
- 談談你對HashMap的理解,底層原理的基本實作,HashMap是怎么解決碰撞問題的?
- 開發中用了那些資料庫?回答mysql,儲存引擎有哪些?然后問了悲觀鎖和樂觀鎖問題使用場景、分布式集群實作的原理,
- springmvc和mybatis的作業原理,有沒有看過底層原始碼?
- 熟悉IO么?與NIO的區別,阻塞與非阻塞的區別,
- 海量資料分析,
- 場景,同時給10萬個人發工資,怎么樣設計并發方案,能確保在1分鐘內全部發完,打個比方會提出類似的場景,
阿里二面(55分鐘)
- 執行緒安全和非執行緒安全,
- HTTP2.0、thrift,
- java反射應用,
- 分布式事務一致性,
- nio的底層實作,
- jvm基礎是必問的,jvm GC原理,JVM怎么回收記憶體,
- API介面與SDI介面的區別,
- dubbo如何一條鏈接并發多個呼叫,Dubbo的原理,序列化相關問題,
- 用過哪些中間件?
- 做過作業流引擎沒有?
- 以前的作業經歷,自己覺得有哪些出彩的地方?
- 執行緒池的一些原理,鎖的機制升降級,
- 從系統層面考慮,分布式從哪些緯度考慮?
- Hadoop底層怎么實作,
- threadLocal,執行緒池,hashMap/hashTable/coccurentHashMap等,
- 秒殺系統的設計,
- 虛擬機,IO相關知識點,
- Linux的命令,
- 一個整形陣列,給定一個數,在陣列中找出兩個數的和等于這個數,并列印出來,我寫的時間復雜度高,要求O(n),
- n個整數,找出連續的m個數加和是最大,
阿里三面(40分鐘)
- 講講網路分層,每一層都有哪些協議(TCP/IP五層模型)
- 瀏覽器從輸入URL到頁面顯示的程序中發生了什么,越詳細越好 (我回答決議URL,決議DNS(快取未命中的情況下需要從根域名開始遞回查詢),建立TCP連接,http請求與答復,Render樹的建立,頁面的渲染)
- 講講http報文的格式?請求和答復有什么不同
- 現在有1T的文本資料,每行表示一個關鍵詞,求出現次數最高的10個關鍵詞,限定單機只有4G記憶體,(我回答先假定記憶體足夠,則用HashMap加小根堆可解, 再解決記憶體的問題:先用hash方法把1T的文本檔案散列成多個足以讀入記憶體的小文本檔案,分別對每個檔案做統計,最后對每個檔案的統計結果做***計)
- 你覺得你的方案有什么不足嗎(我回答的資料分布可能不均勻,可對文本資料采用多次hash,直至單個資料樣本足夠小)
- 現在有一個包含上億條目的表,現實中會有大量的用戶在這個表上做基于uuid的查詢操作,如何改良這個系統的可用性(我回答對這張表的uuid用哈希法做水平切分并建立索引,然后在用戶查詢時用同樣的哈希演算法導向到相應的表)
- 你說的是資料庫層面的優化,對別的層面有什么想法嗎,比如用戶查詢存在高峰期,如何在節約服務器資源的前提下保證對高并發的容忍度,(我回答在服務器端建立令牌池,每隔固定時間向其中發放令牌,令牌總數有限,每個查詢在執行前必須先獲取令牌,令牌總數即為某個時刻下服務器可承載的最大并發數,令牌發放間隔即為最大用戶增速)
總結
面試體驗好,面試官親切,問問題時會做一些引導和提示,也會告訴你哪些方面存在不足,
有一個小插曲,小編之前就提到過阿里喜歡搞突擊面試,你也不知道什么時候會突然來電話(一面和二面的時候水友就在睡覺),
最后把面試資料免費分享給大家,讓你也能成為下一位大佬!
資料領取:戳這里免費領取,暗號:CSDN




愛編程,愛分享,聽說點贊+關注的都進大廠了哦!!!

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/183650.html
標籤:其他
