阿里春招面試

前言:阿里其實是我想去的地方,昨天offer call了。部門是新零售。許願offer。

    其實春招我基本就結束了,就面了三個地方:阿里,騰訊,美團。騰訊和美團目前都拿到了Offer,阿里還在等待。縱觀所有的面試中,其實感覺對於我最大幫助的有兩個,第一就是算法能力,這個讓我在筆試還是面試手撕代碼都很輕鬆,基本上沒有碰到難題,都是一眼秒。第二就是實習經歷,在字節學到了很多東西,見識了很多新技術。其他公司簡歷也投了,有的也邀請筆試,比如pdd,快手。這個還沒開始,後面佛系隨緣了。有空就參加,沒空就g了。

1.一面。

(1)自我介紹

(2)聊聊項目中的難點?

(3)你們服務中的qps大概是多少?(這個其實還是挺大的,有幾千萬)

(4)怎麼解決的高併發?(從負載均衡到存儲說了一遍)

(5)剛纔聽你說了後端存儲是MySQL+Redis。說說MySQL?

(6)MySQL主從同步怎麼實現的?

(7)MySQL索引?

(8)修改主鍵會有什麼影響?

(9)Redis雪崩/擊穿/穿透的概念?

(10)怎麼解決這些問題?

(11)能說說Redis常用的架構嗎?

(12)分佈式緩存一致性知道嗎?

(13)一致性Hash算法說說?

(14)操作系統瞭解嗎

(15)能說說死鎖嗎

(16)死鎖的解決?(從死鎖的產生條件,預防,解除等)

(17)剛纔聽你說了銀行家算法,能說說這個算法嗎

(18)有什麼想問我的?

2.二面

(1)自我介紹

(2)看你簡歷上寫了瞭解Kafka,Rocket MQ ,nsq等,能說說這些嗎?
(3)說說你們項目上消息隊列的選型?

(4)Kafka高吞吐的原因?

(5)Kafka 用於流式計算做過嗎?

(6)Rocket MQ爲什麼經常被用於在線業務?

(7)剛纔聽你說了tag過濾,能說說這是個什麼東西嗎?

(8)你們爲什麼要從nsq遷移到Rocket MQ?(這個我咋知道,公司推得大家都得遷移。。。。,但是當時幸虧有大佬來講了講,我聽了一下,說了幾個重要的點,主要是nsq的雙機房容災這些)

(9)多線程瞭解嗎?

(10)說說synchronized關鍵字?

(11)wait/sleep的區別?

(12)nitify/notifyall 的區別?

(13)線程的創建方式?

(14)callable 的優點?

(15)future 接口用過嗎?

(16)線程池有幾種?

(17)你平時用的哪一種?

(18)說說常用的拒絕策略?

(19)鎖知道嗎?

(20)自旋鎖是什麼?(這個最後還說了一下自適應自旋鎖)

(21)樂觀鎖在JDK哪裏有?(ConCurrentHashMap裏面有)

(22)JAVA的GC?

(23)GC算法/垃圾回收器/分代回收

(24)頻繁Full GC怎麼處理?

(25)Linux 瞭解嗎?

(26)IO模型說說?

(27)多路複用怎麼實現的?

(28)epoll 一定比select/poll 高效嗎?(不一定,具體要考活躍的連接數量)

(29)查看當前cpu的狀況的命令?(top 就知道這一個)

(30)查看tcp端口?(netstat -t )

(31)微服務瞭解嗎?

(32)服務註冊發現是什麼意思?

(33)熔斷的概念能說說嗎?

(34)能說說常見的熔斷算法嗎(說了一個基於水滴漏斗的算法)

(35)有什麼想問我的?

二面說實話,身體被掏空。幾乎把我知道的都問了一遍。感覺就是在探底的。然後面完沒有一個小時,查了一下就過了。

3.筆試。

面完又被拉去做了筆試,兩道編程題。

(1)N個人選出i個組成一隊,再從這i個選出一個隊長,有多少種方案?這個題很簡單。抽象完就是這個:

                                                                          \sum_{i=1}^{n}C_{n}^{i}*i

這個求和很簡單,答案是:

                                                                           n*2^{n-1}

至於爲啥,簡單推理一下,考慮二項式:

                                                                  (1+x)^n=\sum_{i=1}C_{n}^{i}*x^{i}

對這個二項式求導,然後就會發現結果了。最後令x=1就是答案。這個推到我當時直接在腦子裏完成的,前後沒有到30秒。這個題需要用到快速冪,大概3分鐘就秒了第一題。

(2)一個搜索+DP。我寫了一個bfs+dfs+dp 。寫了100多行勉強AC.

4.代碼評測

本來以爲筆試完了就沒了,然後又要部門代碼評測。四個題。兩個算法題我已經記不清楚了,因爲很簡單。還有兩個JAVA多線程。

(1)用兩個線程交替打印1-100裏面的數字,一個奇數一個偶數。

(2)寫個簡單的多線程網絡程序,這個寫的比較簡答,寫的是基於TCP的同步阻塞搞法,最後又說了可以用JDK的NIO框架或者封裝好的Netty可以高效實現。

5.三面

(1)自我介紹

(2)學校裏幹了啥?

(3)JAVA 學了多少?

(4)框架了解過嗎?

(5)能說說Spring裏的IOC嗎?

(6)依賴注入是什麼意思?

(7)AOP呢?

(8)Spring AOP 的底層實現?

(9)Proxy 類裏面的Invoke是什麼意思?

(10)說說你對回調的理解?

(11)Spring Boot 也瞭解過嗎?

(12)說說它和Spring的區別(幸虧,因爲我真的沒用過,只知道區別)

(13)網絡了嗎

(14)說說TCP的三次握手?

(15)四次揮手呢?

(16)爲什麼要有TIME_WAIT?

(17)包會在鏈路裏面一直死循環嗎?(不會,有個ttl)

(18)說說你在字節的項目吧

(19)服務端推送你們是怎麼實現的?(說了個WebSocket的搞法,其實我沒怎麼做這個)

(20)你們的數據量多大?

(21)怎麼提高吞吐量?

(22)剛聽你說了Faas?能說說這是什麼嗎?

(23)說說IAAS,PAAS,SAAS?

(24)你怎麼看待Faas這個東西?和之前的有什麼改進?

(25)剛纔聽你說你的Faas上游延時其實很高,怎麼解決的。(這個瞎說了幾個點,其實我一般都是屏蔽掉延時報警。。。。)

(26)有什麼想問我的?

三面其實聊得挺舒服的,面完查了一下也直接過了。

6.四面

(1)自我介紹

(2)說說你在字節的項目

(3)權限控制怎麼做的?

到了這裏,我介紹了一下xxx,然後xxx,最後xxx。

面試官提了一個問題,他這個問題在我看來不是問題,因爲不可能出現這種情況。我沒get到他的點,就一直bbll這個東西,有10多分鐘吧。。。。。最後不了了之。因爲我都告訴他了,這種情況不會出現,就是出現在中間件部分就被攔截了,不會打到我這裏。他硬要說不安全,問我怎麼解決,我就說我再加一層鑑權邏輯。。。。然後我倆bbll個沒完了。

(4)好吧,其實你沒講清楚。換個話題。JAVA學的怎麼樣?

(5)說說你對線程的理解。

(6)多個線程之間的同步?

(7)synchorized 和Lock的區別

(8)能說一下JVM的synchronized支持嗎

(9)集合類用過多少?

(10)HashMap 的實現?

(12)線程安全嗎?不安全說一下哪些安全?

(13)HashTable 和HashMap 的區別?

(14)設計模式用過哪些?

(15)單例會在哪些應用場景中使用?

(16)單例的線程安全怎麼保證?

(17)觀察者模式是怎麼實現的?

(18)說說消息隊列的應用場景。

(19)Rocket MQ 的特點?

(20)爲什麼常用與在線業務(低延時)

(21)平時看過那些書?

(22)能實習多長時間,什麼時候開始?

(23)有什麼想問我的?

四面面完感覺沒了。。。。因爲最後問了一下面試官比較看重面試中的那些點,他說對問題的理解,看看能不能解釋清楚,這不是擺明了說我有些問題沒說明白嗎?感覺gg

 過了幾天,查了一下還是過了。

7.HR面。

聊了很多,從高中聊到大學以及未來。爲啥學計算機?爲啥去這個大學?好吧,還算行。

8.昨天 Offer Call 了。

阿里面試算是結束了,看一下還是挺不容易的。

 

                                                                      

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