【阿里P6面經】二本,curd兩年,瘋狂複習,拿下阿里offer

給的是P6,base畢竟低,膽小,沒敢和hr去撕逼,argue就不說了,同時也是紅線就不透露太多了。

說一下我大致情況吧,普通二本軟件工程畢業,剛開始在一家小的創業型公司crud,隨後進了一家獨角獸(2b方向),也是crud。

經驗3年不到,其實對我而言,優勢不大,屬於那種簡歷送給hr,還沒機會給對應部門看,就被砍的那種,你懂的!

簡歷,最好能找大廠的小哥哥幫你看看,改到他們覺得可以過hr的法眼,讓他們幫你內推,這樣基本能獲取到面試的機會,不然機會都沒有,只能做大廠夢了。

簡歷最好有亮點,能夠量化的東西,也別寫的太浮誇了,明明是個小的系統,非要吹幾百萬的qps的話,即便簡歷過了,大佬面你時候,你吹不出來,你懂吧。

很多人其實和我差不多,天天crud的,哪有什麼亮點?

有的,你要相信自己,你遇到過什麼問題,怎麼解決的,用了什麼方法,效果怎麼樣的?

你把這個4連擊想破頭你都要想出來,組成一段話,你的亮點就出來了。

當然,亮不亮就看你平時了,實在沒有,那你就回去重構系統,模塊。

不然就最好別去面了,因爲你啥都拿不出手。最簡單的來說,就是產品經理提了什麼奇葩的需求,你怎麼解決了,你能巧妙的形容出來都是亮點。

關於簡歷這塊的話,還是讓大廠小哥哥幫你看看先。然後裏面涉及到的所有的東西,你必須會“自圓其說”,你寫了什麼,你必須會,而不是充字數,要麼別寫。

我碰過一個dd面試官把我寫的所有東西問了個遍,很酸爽,不過我基本都答出來了。

簡歷這部分簡單說到這。

準備,所有的面試是要準備的!(技術大牛當我沒說)

對於我這種面高級的話,一般而言你簡歷上寫的都必須會,而且必須有一些是你的亮點,你得有一些深入的瞭解,回答讓面試官覺得你這個小夥子不簡單,有點東西。

Java集合比如說HashMap和ConcurrentHashMap我覺得,你最好在平時能去耐心讀一下源碼,搜一搜相關的博客,最好能知道每個參數爲什麼設置成這麼大?有什麼好處?爲什麼?你會發現不少東西,網上也有很多視頻可以去學。

JUC包,毫無疑問的,你得去學,哪怕你平時編程根本不去用,但是你得會,只得知道有這個東西,你至少得知道aba,cas,aqs,unsafe,volatile,sync,常見的各種lock,死鎖,線程池參數和如何合理的去設置,你必須明白自旋,阻塞,死鎖和它如何去定位,oom如何定位問題,cpu過高如何定位等基本的操作,你可以沒有生產調試經驗,但不代表你可以不會top,jps,jstack,jmap這些可能會問的東西。以及可能衍生的jmm模型和mesi協議等。

JVM毫無意外,大廠必須問,垃圾回收算法,垃圾收集器,jvm內存模型,每個區域用途,各種oom的種類,jvm調優經驗,沒有你也要做過,自己去設置啓動參數,知道常見參數的含義,類加載過程,雙親委派,什麼時候young gc,full gc,各種情況進入老年代的方式,你知道的越多越好,因爲吹起來就越自信,舉個例子,逃逸分析是什麼?markword裏面有什麼?

Spring,最好能抽空看看源碼,最起碼bean的生命週期,如何解決循環依賴,父子容器,還有boot的啓動流程,事務實現原理,動態代理原理等,你知道越多越好。

Dubbo,因爲我用的是dubbo,而且我寫了,這個也是高頻,寫了必須問的,他的設計框架,負載均衡,spi機制,一般順勢會提到zk,選舉算法,分佈式鎖等,一些常見的dubbo問題可以去搜,網上的基本都有。可能會順帶去問cloud的問題,生產沒用過不怕,你現在可以自己clone一個項目,最起碼,互聯娃,你得知道還有這個玩意兒,還有他集成了啥,比如rureka,hystrix,ribbon,feign,zuul這些常規的東西吧,他們做什麼的?

Redis,必須會的,我這方便還算懂得多點,可以和麪試官大戰幾個回合吧,應該不至於上來被打趴下,單線程模型,aof,rdb,rewrite,主從,cluster,哪些類型,不要再說常規的5個了,多說幾個讓你區別其他小哥,包含一些緩存常見的問題擊穿、穿透、雪崩、數據一致性等,你必須會,不會基本沒戲,一致性hash,布隆過濾器的原理,爲此我還去了解了geohash的原理以及google s2的原理,底層數據結構sds和跳錶等,你多學點,準沒錯。

Mysql,事務,鎖,索引,b+樹,主從這些你必須會

Mq ,我用的rocketmq,你得知道爲什麼用,重複消費,順序消息,事務消息,高可用,消息丟失,擠壓場景,整個消息發送消費的流程,讀過源碼更佳,更好吹

Netty的話,零拷貝,bio,nio,aio,架構設計怎麼樣子的?用過看過更好

算法,建議去刷題,我運氣好,簡單的算法讓我碰到了,一些快排,堆排,二叉樹相關的,鏈表反轉,成環,環節點,跳樓梯等常規的簡單算法建議刷刷,雙指針,dp,遞歸這些還是多找找感覺,大數據內存有限的場景的統計,有時間一些middle可以去試試,手寫紅黑樹你要是可以,那我估計算法你穩了。

網絡,http,tcp,https,udp,7層網絡協議等,最好結合自己理解,背,你都要背下來。

還有就是一些分佈式事務實現,架構實現,比如搶紅包,高併發下單等常規的場景設計,你來設計,你怎麼去設計?多找一些大牛或者上網自己查,幫你看看有哪些漏洞,有那些解決方案?業界有哪些好的中間件?

大部分的準備工作差不多了,我覺得差不多可以去試試了

一般面試開始都一樣,自我介紹+最熟悉的系統介紹,最後都是問你想問他什麼。時間有點久,我可能沒記全面試題,見諒:

一面40min:

sync的底層實現,鎖優化,和lock的對比等

jvm參數調優詳細過程,到爲什麼這麼設置,好處,一些gc場景,如何去分析gc日誌

redis數據結構,使用場景,微博場景使用redis如何去設計用戶關係

線程池參數設定,爲什麼這麼設定,作用?7大參數

spring的循環依賴如何解決?爲什麼要三級緩存?

優先級隊列的底層原理?

基本都是扣着你的項目去問,一面主要以基礎爲主。

二面1h:

基本就是設計問題了

結合你項目問你如何設計,提出漏洞,你怎麼解決?如何改進,萬一掛了?加一臺機器有沒有問題?如果我非要不出問題怎麼辦?

高併發下單扣庫存場景如何設計

rocketmq架構設計原理(大方向)

dubbo框架實現原理(大方向)

最近讀了什麼書?平時怎麼學習

三面1.5-2h:

兩個大佬一個問一個找漏洞,逮到沒說清的就繼續問,壓力面

也是結合項目問,爲什麼這麼設計?讓你去優化,你怎麼優化,引導你用一個合理的更好的方式去優化,數據庫的設計等

在公司做了什麼事情,各個系統業務線都是做什麼的,你的績效,手寫算法鏈表反轉,還算簡單了

看起來問的很少,但是是不斷的否認你做的項目,在他的引導下去設計一個更好的系統,的確,他們說的是對的,挺厲害的,即便沒成功,也能學到一點東西的。因爲問的太久了,我細節記不清楚了

四面20min:

可能看我說了jvm,boss直接開始懟我jvm,還好我有準備,基本都接下來了,比如一些sms的過程,full gc做什麼了之類的常規問題,很奇怪這時候問我基礎,哈哈

後來有個問題就很玄幻了,把你知道所有的中間件全說出來,估計看我廣度吧,我是一口氣說了幾十種吧。

hrg面:

嗅味道了,阿里味必須足,爲什麼來,以前爲什麼不來?

從畢業到現在有什麼改變?

一句話總結下自己,反正你需有有強烈來的慾望就對了,此時此刻,非我莫屬,哈哈!

強調一點,簡歷寫了啥,你必須複習到位!多準備準備,失敗不怕,總結經驗,努力學習!

你要悄悄的拔尖,然後驚豔所有人!

總結

這也是我的一個讀者,之前還找我內推過我們公司的。

最後去了阿里,挺好的,看大家的面經我也很爽,各種掃盲。

不說了我今天準備早點回家,這個讀者跟我說植髮20一根,我。。。

我是敖丙,一個在互聯網苟且偷生的工具人。

最好的關係是互相成就,各位的「三連」就是丙丙創作的最大動力,我們下期見!

文章持續更新,可以微信搜索「 三太子敖丙 」第一時間閱讀,回覆【資料】【面試】【簡歷】有我準備的一線大廠面試資料和簡歷模板,本文 GitHub https://github.com/JavaFamily 已經收錄,有大廠面試完整考點,歡迎Star。

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