剛從阿里面試回來,想和程序員們談談(想進阿里的必看)

       最近面試了多家互聯網公司,最終收到了阿里offer,面試前在網上也蒐集了面試題目, 但有些不是過時的,就是題目雜亂,歸納不繫統。 這次面試過後,我把面試上阿里的面試過程整理了一下,當做是一個總結,後來有朋友問我要面試記錄,索性發布出來,跟大家一起分享。

       因爲之前有同事面試過京東、美團、滴滴等大型互聯網公司,將面試題目整理好分享給我,如果大家感興趣的話,推薦大家關注wx公衆號Java資訊庫,裏面整理有算法面試題、BAT面試題以及面試技巧等。


剛從阿里面試回來,想和程序員們談談(想進阿里的必看)




     一面



       一面沒有技術面直接就是組長面,首先是自我介紹,之後問了項目內容,我就說了下即時通訊和視頻加工兩個模塊。他讓我畫出模塊的架構圖,這個建議大家準備一下,阿里和百度都有要求應聘者畫模塊圖考察應聘者的開發層次和思路。本人沒什麼準備,不過當時設計評審時的UML還記着,就把模塊圖和類圖畫了下。

       面試官又問,有沒有遇到困難;我說有,性能瓶頸、卡頓的問題、瞬時信息量過大導致的UI卡死;他就問如何解決的,我說由實時刷新改爲定時刷新;他問還有沒有更好的實現方式,我回答有用任務隊列。

       我們又爭論了下任務隊列的設計應該用先進先出還是後進先出。這時候本人已經忘記是來面試的了,只想爭贏,語速越來越快,聲音也越來越大。他質疑我這個機制在效率調優上沒有意義,因爲系統會進行cell緩存;我說在中間的時候系統緩存可以生效,在最底部的時候就失效了,就會卡頓。最後還是我爭贏了,時間就這麼不知不覺中過了一個小時。

       問通訊消息騰訊是如何做的,我說不知道我猜測是這麼做的巴拉巴拉;問了我濾鏡的使用和原理,如何美白,我說修改OpenGL的值就可以了,問如何進行視頻合成,這個很簡單把視頻和音頻軌道抽出來再用composition合成就可以了。問了下加水印、也是從文件中把視頻軌道layer抽出再把圖片layer加在這個layer上就可以了。

       把開始時間和持續時間、幀率設置好就ok了,又問了下爲什麼來面試,一面官最後問我工作地點。


    二面


       一面結束讓我去休息之後是二面,二面的面試官很nice。讓我做自我介紹之前竟然先做了自我介紹,他負責的部門是核心部門。

       面試的內容跟一面差不多。讓我在白板上畫我設計的系統架構圖之後就是講解,問了我的職業規劃,我說現階段還是想寫代碼。他問多久,我說2年吧,又問我對管理崗位怎麼看,我說一個好的管理首先要能幫助組員解決問題,我現在水平還達不到這個境界,想多寫點代碼,代碼量上去後設計能更合理一些,像這個設計當時有幾個優化點沒考慮到,有點遺憾。面試官問我有什麼問題之後,我就詢問了下他們部門的情況和企業文化,面試官好像比較滿意,就讓我去hr面,還特別強調就是跟hr聊聊不算面試。

       hr面過程不表,就是問了下杭州房價問題,問我能不能來杭州發展,我說我考慮下,還不知道你們會不會錄用,閒扯了半個小時,就打道回府了。3天后收到阿里的offer通知介紹,給的薪水又一次超過了本人的心理預期,還有本人一直夢寐以求的期權。

    阿里的面試跟騰訊百度都不同,感覺更注重項目實踐一些。總結來說BAT的技術面都差不多,只要把內功和外功都修煉好了再配合點實戰經驗基本上都可以應付三大的面試了。


    面試的核心流程


       技術一面、技術二面(組長面)、總監面、hr面,騰訊會多一個經理面;但是一般總監認爲可行的人,9成的應聘者都會通過經理面的,除非發現嚴重的撒謊行爲;hr面就是走過場,刷人的機率基本上爲零。以前招聘過一個同學,hr想刷掉,理由是沒有大公司經驗,被我們組長一頓叼,說這個人各方面都很適合又踏實,如果你們覺得這個不行你們就要負責招一個你們認爲行的,否則我們工作做不下去了,hr就軟了。後來事實證明,這個同事工作完成的相當好,人的能力跟公司大小沒關係。最難的就是二三面,人也基本上是這兩面中刷下去的,大家一定要小心。我個人的經驗來看,總監越嚴肅通過的機率越大,越客氣就越危險。

       面試準確講不應該叫面試應該叫面談,就是interview,勞資雙方坐下來談談聊聊,互相瞭解。我們程序員作爲技術工作者不是去求職的,只是去看看你的機會,你可以保留你的職位,我保留我的做事方法。


剛從阿里面試回來,想和程序員們談談(想進阿里的必看)


    面試題目


1. ThreadLocal有什麼缺陷?如果是線程池裏的線程用ThreadLocal會有什麼問題?

2. 類的加載機制,爲什麼要用雙親委託?如何打破雙親委託加載機制

3. 如果有一個100萬的qps項目,你會從哪些方面考慮系統的設計?

4. 你平時經常用到的設計模式有哪些?

5. 熟悉Reactive開發模式嗎?

6. 你熟悉的分佈式技術有哪些?瞭解他們底層的實現機制嗎?

7. Springcloud 各個組件的運行機制是什麼?

8. TreeMap與TreeSet實現原理是什麼?

9. Array和ArrayList的區別?

10. JVM的數據區有哪些,作用是什麼?

11. JVM堆內存結構是怎樣的?哪些情況會觸發GC?會觸發哪些GC?

12. 數據庫你們是怎麼優化的?

13. synchronization 和Lock有什麼區別?

14. 用過反向代理服務器嗎?用來做什麼?nginx負載均衡有哪些參數?

15. 你熟悉的消息對列中間件的實現原理是什麼?和其他消息中間對比,有什麼優勢?

16. Poll與ePool的區別?

17. BIO與NIO有什麼區別?

18. 手寫代碼題,不能是僞代碼,能編譯通過: 有一個變量list,元素存放集羣的實例個數,有一個變量batch批次,根據批次均勻部署應用到集羣的所有實例。

19. 你的職業規劃?年薪期望薪資?


剛從阿里面試回來,想和程序員們談談(想進阿里的必看)



    關於Java行業前景


       隨着IT培訓業的持續發展和大量的應屆畢業生進入社會,Java程序員面臨的競爭壓力越來越大。那麼,作爲一名Java程序員,怎樣努力才能快速成長爲一名高級的程序員或者架構師,或者說一名優秀的高級架構師應該有怎樣的技術知識體系,這不僅是一個剛剛踏入職場的初級程序員,也是工作三五年之後開始迷茫的老程序員,都必須要面對和想明白的問題。

       爲了幫助大家少走彎路,我請一線互聯網工作過的同事總結出一套技術體系,由於內容龐大,特整理出一套視頻。主要是針對BAT一線大型互聯網公司的面試,涵蓋Java工程化、高性能及分佈式、性能調優、Spring、Netty源碼分析和大數據等面試技巧,想要了解詳情的可以加入Java後端技術羣:819940388免費的大型互聯網Java技術視頻分享給大家。

       原文鏈接:https://blog.csdn.net/qq_42894896/article/details/83111326,如有侵權聯繫刪除。


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