對于很多沒有學歷優勢的人來說,面試大廠是非常困難的,這對我而言,也是一樣,出身于二本,原本以為就三點一線的生活度過一生,直到生活上的變故,才讓我有了新的想法和目標,因此我這個二本渣渣也奮斗了起來,竟拿下了阿里 P6 崗,今天分享這波面經,主要是希望能夠激勵到同樣被學歷所困擾的技術人,能夠對職業生涯和技術規劃有一個參考價值,感謝!
一、面試阿里 P6 難在哪?(面試難點)
(1)難在“心態”
首先需要克服的第一關,實際上就是自己的心態,因為我是二本出身,base 比較低,所以面試阿里本就是一件沒太大底氣的事情,更何況是高級開發崗,所以心里就更容易沒底,因此,在準備面試之前,調整心態這件事情就做了很久,所以難在“心態”一點也沒錯,心態沒調整好,面試幾乎是沒戲的,
(2)難在“要求”
其次就是要求,所謂的要求實際上就是阿里對崗位的任職要求,也就是作為開發人員,你掌握了多少技術堆疊?
首先,你簡歷上寫的肯定要會,其次就是你要擁有一些亮點,也就是說對某個技術有深入的了解,這樣才能給面試官耳目一新的感覺,
那么,面試阿里 P6 崗,需要掌握多少呢?
-
Java 集合:HashMap 和 ConcurrentHashMap,平時最好有讀一些原始碼,最好知道每個引數為什么設定成這么大?有什么好處?
-
JUC 包肯定要學,即使平時的編程根本不用,也必須得會,至少要知道 aba,cas,aqs,unsafe,volatile,sync,以及常見的各種 lock,死鎖,執行緒池引數等,也必須要明白自旋,阻塞,死鎖和它如何去定位,oom 如何定位問題,cpu 過高如何定位等基本的操作,你可以沒有生產除錯經驗,但不代表你可以不會 top,jps,jstack,jmap 這些可能會問的東西,以及可能衍生的 jmm 模型和 mesi 協議等,
-
大廠必問 JVM:垃圾回收演算法,垃圾收集器、JVM 記憶體模型,每個區域用途,各種 oom 的種類,jvm 調優經驗,類加載程序,雙親委派等,
-
Spring 就得抽空看原始碼了,一般會問到 bean 的生命周期,如何解決回圈依賴,實作事務原理,動態代理原理等,
-
Dubbo 也是必須問的,設計框架,負載均衡,
-
Redis 更要多懂一點,單執行緒模型,aof,rdb,rewrite,主從,cluster,哪些型別?包含一些快取常見的問題擊穿、穿透、雪崩、資料一致性等,
-
Mysql,事務,鎖,索引,b+樹,主從這些你必須會
-
Mq ,我用的 rocketmq,你得知道為什么用,重復消費,順序訊息,事務訊息,高可用,訊息丟失,擠壓場景,整個訊息發送消費的流程,讀過原始碼更佳,更好吹
-
Netty 的話,零拷貝,bio,nio,aio,架構設計怎么樣子的?用過看過更好
-
演算法,建議去刷題,我運氣好,簡單的演算法讓我碰到了,一些快排,堆排,二叉樹相關的,鏈表反轉,成環,環節點,跳樓梯等常規的簡單演算法建議刷刷,雙指標,dp,遞回這些還是多找找感覺,大資料記憶體有限的場景的統計,有時間一些 middle 可以去試試,手寫紅黑樹你要是可以,那我估計演算法你穩了,
-
網路,http,tcp,https,udp,7 層網路協議等,最好結合自己理解,背,你都要背下來,
-
還有就是一些分布式事務實作,架構實作,比如搶紅包,高并發下單等常規的場景設計,你來設計,你怎么去設計?多找一些大牛或者上網自己查,幫你看看有哪些漏洞,有哪些解決方案?業界有哪些好的中間件?
二、阿里面試題(共 5 面)
阿里一面:
-
自我介紹、自己做的專案和技術領域
-
說一下 sync 的底層實作,鎖優化,和 lock 的對比
-
講一下 JVM 引數調優詳細程序
-
為什么這么設定?好處是什么?描述 GC 場景,如何去分析 GC 日志?
-
redis 資料結構,使用場景,微博場景使用 redis 如何去設計用戶關系?
-
執行緒池引數設定,為什么這么設定,作用?7 大引數
-
spring 的回圈依賴如何解決?為什么要三級快取?
-
優先級佇列的底層原理?
阿里二面:
-
自我介紹一下吧
-
聊專案
-
結合你專案問你如何設計,提出漏洞,你怎么解決?如何改進,萬一掛了?加一臺機器有沒有問題?如果我非要不出問題怎么辦?
-
高并發下單扣庫存場景如何設計
-
rocketMQ 架構設計原理
-
Dubbo 框架實作原理
-
最近讀了什么書?平時怎么學習?
-
常用的負載均衡,該怎么用,你能說下嗎?
阿里三面:
-
這一面主要問專案,給你的壓力感比較強
-
結合專案問,為什么這么設計?讓你去優化,你怎么優化,引導你用一個合理的更好的方式去優化,資料庫的設計等
-
在公司做了什么事情,各個系統業務線都是做什么的,你的績效,手寫演算法鏈表反轉?
阿里四面:
-
JVM 的主要組成部分及其作用?
-
JVM 運行時資料區包含哪些?
-
JVM 垃圾回識訓制,何時觸發 MinorGC 等操作
-
JVM 的垃圾回收演算法:
-
JVM 調優的工具?
-
常用的 JVM 調優引數?
-
堆疊的區別?
-
詳細介紹一下 CMS 垃圾回收器?
-
怎么判斷物件是否可以被回收?
-
新生代垃圾回收器和老生代垃圾回收器都有哪些?有什么區別?
-
java 類加載程序?
-
把你知道的中間件都說一下吧(瞬間懵了一下)
HR 面:
-
為什么來阿里?
-
之前沒考慮過阿里嗎?
-
畢業這么久了,你覺得自己最大的改變是什么?
-
用一句話總結一下自己
三、面試阿里前,我做了哪些準備,
現在 Java 面試可以說是老生常談的一個問題了,確實也是這么回事,面試題、面試寶典、面試手冊......各種 Java 面試題一搜一大把,根本看不完,也看不過來,而且每份面試資料也都覺得 Nice,然后就開啟了收藏之路,
Java 開發者應該是不會很容易滿足的,現在拿著 20K 的作業,下一步就想著拿 50K 的 offer,甚至年薪百萬都是程式員很常見的,不滿足于現狀,身在其位就要有擔當其位的能力,不斷提升技能、技術堆疊,都是必不可少的!
其實很多人,對本身沒有一個清楚的規劃,甚至不知道適合什么路線,這樣的話,你就會離心儀的 offer 越來越遠!無論何時,都需要對自身有一個清楚的認知,你會提前規劃一下自己的學習路線嗎?

如果你有跳槽的打算,不妨停下來,來看一下,可以更加系統、有條理地去復習、備戰,
有以下好處:
-
可以通過一個體系進行復習,解決不知從哪里看起,如何下手?
-
建立起一個系統的復習體系,每個知識點都是獨立且有聯系的?
-
回顧并總結各大廠常考面試點,從自己的實際出發,了解差距在哪?
當然除了這些還有一部分很漂亮的學習資料,總結得很全面的,包含了 29 個知識點,從基礎到進階都有了!篇幅限制就展示了部分內容,需要完整版的小伙伴可以幫忙點贊此文后,文末可免費領取
Java 面試核心知識手冊
這份手冊我看到的時候就感覺很良心,有 JVM、多執行緒、Spring 全家桶、微服務、網路、訊息中間件、資料結構、演算法、分布式等等都包含了:
目錄一覽
-
JVM

-
Java 集合+多執行緒并發

-
Java 基礎+Spring 原理+微服務

-
Netty 與 RPC+網路

-
日志+Zookeeper+Kafka

-
Rabbit+Hbase+MongoDB

-
設計模式+負載均衡

-
資料庫+一致性演算法

-
Java 演算法+資料結構+加密演算法+分布式快取

內容一覽
-
執行緒

-
Java&實作

-
Java 執行緒池作業程序

-
Spring

-
Netty 與 RPC

-
網路架構

-
Rabbit

-
資料庫

-
加密演算法

-
云計算

總結
只有充分地準備好了面試,才可以更有自信地吊打面試官,每方面的知識都是必須的,不能缺乏的,
需要完整版的小伙伴可以幫忙點贊此文后,點擊下方添加小助手 免費獲取
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/302508.html
標籤:java
