面試阿里JavaP7崗本以爲涼涼:4輪技術面終拿下offer,終圓我大廠夢

一直有個大廠的心,復工回來,就開始看大廠機會,有幸接到了阿里的面試,非常榮幸,很快就拿到了Offer,一個字就是"爽" 經歷了三輪技術面和一輪Hr面,面試官們都非常nice,爲了幫助更多人想進阿里巴巴的同學完成夢想,特地整理了面試的問題,給大家一些建議,希望大家也能拿到自己心儀的Offer

阿里一面:

1.介紹一下自己。
2.項目參與的核心設計有哪些
3.java反射原理, 註解原理?
4.ArrayList和LinkedList的插入和訪問的時間複雜度?
5.說說一致性 Hash 原理
6.HashMap及線程安全的ConcurrentHashMap,以及各自優劣勢
7.https和http區別,有沒有用過其他安全傳輸手段?
8.SQL優化,常用的索引?
9.請詳細描述springmvc處理請求全流程?
10.項目用 Spring 比較多,有沒有了解 Spring 的原理?AOP 和 IOC 的原理
11.1.8還採用了紅黑樹,講講紅黑樹的特性,爲什麼人家一定要用紅黑樹而不是AVL、B樹之類的?
12.線程池的工作原理,幾個重要參數,然後給了具體幾個參數分析線程池會怎麼做,最後13.問阻塞隊列的作用是什麼?
14.Synchronized和Lock哪個更好?
15.ArrayList和LinkedList底層

阿里二面:

1.先直接問做過哪些Java開發相關的項目。
2.數據庫索引,底層是怎樣實現的,爲什麼要用B樹索引?
3.Mysql主從同步的實現原理?
4.兩個10G的文件,裏面是一些url,內存只有1G,如何將這兩個文件合併,找到相同的url?
5.代碼題:兩個有序數組,數組中存在重複數字,合併成一個有序數組,去除重複數字。
6.有使用過哪些NoSQL數據庫?MongoDB和Redis適用哪些場景?
7.描述分佈式事務之TCC服務設計?
8.Redis 的 list zset 的底層實現
9.分佈式 session 的共享方案有哪些,有什麼優劣勢
10.從千萬的數據到億級的數據,會面臨哪些技術挑戰?你的技術解決思路?
11.排序算法的複雜度,快速排序非遞歸實現。

阿里三面:

1.jvm性能調優都做了什麼
2.分佈式系統原理:CAP,最終一致性,冪等操作等
3.高併發情況下,我們系統是如何支撐大量的請求的
4.什麼情況會出現雪崩,以及如何應對?
5.集羣監控的時候,重點需要關注哪些技術指標?這些指標如何優化?
6.分佈式架構設計哪方面比較熟悉
7.介紹你實踐的性能優化案例,以及你的優化思路
8.談談分佈式鎖、以及分佈式全局唯一ID的實現比較?

阿里四面

1.自己參與的項目,技術難度高的有哪些?
2.談一個你覺得你學到最多的項目,使用了什麼技術,挑戰在哪裏
3.線上有實際的性能優化經驗?
4.從SQL、JVM、架構、數據庫四個方面講講優化思路,以及如何優先排序?
5.redis的持久化方式,redis3.0原生集羣和redis讀寫分離+哨兵機制區別
6.Redis 的 list zset 的底層實現
7.如果讓你實現一個mq,怎麼樣保證消息不丟失
8.你熟悉哪些中間件,談談你對他們的理解,以及對應的使用場景區別?
9.最後,你有什麼想問我的?

HR面

自我介紹
如何學習新技術?
如何團隊合作的?
職業規劃

由於文章的篇幅有限,所以這次的阿里面試題答案整理在了PDF文檔裏

我總結了下,問的都不算很難,雖然不是很順暢,但問題也都一一回答上了,但是總感覺有種說不出的感覺。本以爲已經涼涼了,誰知道幾天後竟然收到通知,竟然過了!心情也是有點無法平靜

當然,大廠的面試,是一個系統規範化的流程,除了Spring、Redis、MQ這些必備品外,每一個簡歷都會有一句你Java基礎紮實(有沒有被說中),那麼,到底怎麼樣算Java基礎紮實?

1、集合,例如 List、Map的原理,HashMap基本必問這個不用我多說

2、併發,例如線程、線程池,鎖相關,這些也基本必問

3、JVM,例如垃圾回收器,垃圾回收算法,OOM處理,jvm參數及調優

那麼專業技能怎麼寫?

先問一下你自己會什麼,然後看看你意向的公司需要什麼。我說的是一般HR可能並不太懂技術,(當然內部人員來面試就不一樣了)所以他在篩簡歷的時候可能就盯着你專業技能的關鍵詞來看。對於公司有要求而你不會的技能,你可以提前花幾天時間學習一下,然後在簡歷上可以寫上自己瞭解這個技能。比如你可以這樣寫(下面這部分內容摘自我的簡歷,大家可以根據自己的情況做一些修改和完善):

1.計算機網絡、數據結構、算法、操作系統等課內基礎知識:掌握
2.Java 基礎知識:掌握
3.JVM 虛擬機(Java內存區域、虛擬機垃圾算法、虛擬垃圾收集器、JVM內存管理):掌握
4.高併發、高可用、高性能系統開發:掌握
5.Struts2、Spring、Hibernate、Ajax、Mybatis、Redis、JQuery :掌握
6.SSH 整合、SSM 整合、 SOA 架構:掌握
7.Dubbo: 掌握
8.Zookeeper: 掌握
9.常見消息隊列: 掌握
10.Linux:掌握
11.MySQL常見優化手段:掌握
12.Spring Boot +Spring Cloud +Docker:瞭解
13.Hadoop 生態相關技術中的 HDFS、Storm、MapReduce、Hive、Hbase :瞭解
14.Python 基礎、一些常見第三方庫比如OpenCV、wxpy、wordcloud、matplotlib:熟悉

上面說的這些,是面試基本的標配了。

首先來說下對於簡歷的準備。MQ、Redis這兩個是標配沒跑的了。爲啥?你要突出你的核心競爭力,無非圍繞高併發、高可用、海量數據這幾個點出發。

其次,核心競爭力也體現在分佈式解決方案的真實落地實踐,但是這些分佈式解決方案,也很大程度上依賴 Redis和 MQ。

以下主要分享面經和個人學習方法,會包括很多PDF文檔,如面試題庫(含答案+解析)、學習筆記、實戰文檔和腦圖等等,個人可以免費分享,私信關鍵字(資料)免費獲取~

整理了一套 2020 最新的 Java 面試題,基本上覆蓋了所有的面試知識點,包括的內容如下:
Java基礎,容器,多線程,反射,Java web模塊,網絡,設計模式,SpringMVC,SpringBoot,SpringCloud,Hibernate,Mybatis,中間件(RabbitMQ,Kafaka,Zookeeper),數據庫(MySQL,Redis)和JVM等相關內容。

如果大家看的還不過癮,再來份美團架構師總結的面試知識點,看完兩份BAT so easy!

以上分享面經和個人學習方法,包括很多PDF文檔,如面試題庫(含答案+解析)、學習筆記、實戰文檔和腦圖等等,個人可以免費分享,私信關鍵字(資料)免費獲取~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章