本文來自云棲社區(qū)博主crossoverJie的分享,。 以下為分享全文: 最近有些朋友在面試阿里,,加上 Java-Interview 項目的原因也有小伙伴和我討論,,近期也在負責部門的招聘,這讓我想起年初那段長達三個月的面試經歷,。本來沒想拿出來說的,,畢竟最后也沒成。 但由于那幾個月的經歷讓我了解到了大廠的工作方式,、對候選同學的考察重點以及面試官的套路等都有了全新的認識,。 當然最重要的是這段時間的查漏補缺也讓自己精進不少。 先交代下背景吧: 從去年 12 月到今年三月底,,我前前后后面了阿里三個部門,。 其中兩個部門通過了技術面試,還有一個跪在了三面,。 光看結果還不錯,,但整個流程堪稱曲折。 下面我會盡量描述流程以及大致的面試題目大綱,,希望對想要跳槽,、正在面試的同學帶來點靈感,幫助可能談不上,,但啟發(fā)還是能有,。 以下內容較長,請再次備好瓜子板凳,。 A 部門 首先是第一次機會,,去年 12 月份有位大佬加我,后來才知道是一個部門的技術 Leader 在網上看到我的博客,,問我想不想來阿里試試,。 這時距離上次面阿里也過去一年多了,也想看看現(xiàn)在幾斤幾兩,,于是便同意了,。 在推薦一周之后收到了杭州打來的電話,說來也巧,,那時候我正在機場候機,,距離登記還有大概一個小時,,心想時間肯定夠了,。 那是我時隔一年多第一次面試,還是在機場這樣嘈雜的環(huán)境里,。多多少少還是有些緊張,。 1.一面 以下是我印象比較深刻的內容: 面試官: 談談你做過項目中印象較深或自認為做的比較好的地方? 博主: 我覺得我在 XX 做的不錯,,用了 XX 需求實現(xiàn) XX 功能,,性能提高了 N 倍,。 面試官: 你說使用到了 AOP ,能談談它的實現(xiàn)原理嘛,? 博主: 它是依靠動態(tài)代理實現(xiàn)的,,動態(tài)代理又分為 JDK 自身的以及 CGLIB 。,。,。。 面試官: 嗯,,能說說他們的不同及優(yōu)缺點嘛,? 博主: JDK 是基于接口實現(xiàn),而 CGLIB 繼承代理類,。,。。 就是這樣會一直問下去,,如果聊的差不多了就開始問一些零散的問題:
大概是以上這些,,當聊到倒數(shù)第二個時我已經登機了,。最后不得不提前掛斷,結束之前告訴我之后會換一個同事和我溝通,,聽到這樣的回復一面應該是過了,,后面也確實證實了這點。 2.二面 大概過了一周,,二面如期而至,。 我聽聲音很熟,就嘗試問下是不是之前一面的面試官,,結果真是,。 由于二面的面試官臨時有事所以他來替一下。于是我趕緊問他能否把之前答的不好的再說說,?的到了肯定的答復后開始了我的表演,。 有了第一次的經驗這一次自然也輕車熟路,原本感覺一切盡在掌握卻被告知需要筆試突然被激醒,。 筆試是一個在線平臺,,需要在網頁中寫代碼,會有一個明確的題目: 從一個日志文件中根據關鍵字讀取日志,,記錄出現(xiàn)的次數(shù),,最后按照次數(shù)排序打印。 在這過程中切記要和面試官多多交流,,因為筆試有時間限制,,別到最后發(fā)現(xiàn)題目理解錯了,這就和高考作文寫完發(fā)現(xiàn)方向錯了一樣要命,。 而且在溝通過程中體現(xiàn)出你解題的思路,,即使最終結果不對,但說不定思考的過程很符合面試官的胃口哦,。這也和今年的高考改卷一樣,;過程正確得高分,只有結果得低分,。 3.三面 又過了差不多一周的時間接到了三面的電話,,一般到了三面會是技術 Leader 之類的角色。 這個過程中不會過多強調技術細節(jié),,更多的考察軟件能,,比如團隊協(xié)作、學習能力等,。
一周之后我接到了 HR 助理的電話約了和 HRBP 以及產品技術負責人的視頻面試,。 但是我卻沒有面下去,,具體原因得往下看。 B 部門 在 A 部門三面完成后,,我等了差不多一星期,,這期間我卻收到了一封郵件。 大概內容是他在 GitHub 上看到的我,,他們的技術總監(jiān)對我很感興趣(我都不敢相信我的眼睛),,問我想不想來阿里試試。 我對比了 A B 部門的區(qū)別發(fā)現(xiàn) B 部門在做的事情上確實更加有誘惑力,,之后我表達了有一個面試正在流程中的顧慮,;對方表示可以私下和我快速的進行三面,如果一切沒問題再交由我自行選擇,。至少對雙方都是一個雙贏嘛,。 我想也不虧,并且對方很有誠意,,就答應試試,;于是便有了下面的面試: 1.一面 面試官:對 Java 鎖的理解? 博主: 我談到了 synchronize,,Lock 接口的應用,。 面試官:他們兩者的區(qū)別以及優(yōu)缺點呢? 博主: synchronize 在 JDK1.6 之前稱為重量鎖,,是通過進出對象監(jiān)視器來實現(xiàn)同步的,;1.6 之后做了 XX 優(yōu)化。,。,。 而 ReentrantLock 是利用了一個巧妙數(shù)據結構實現(xiàn)的,并且加鎖解鎖是顯式的,。,。。 之后又引申到分布式鎖,,光這塊就聊了差不多半個小時,。 之后又聊到了我的開源項目:
之后技術聊的不是很多,但對于個人發(fā)展卻聊了不少,。 2.二面 隔了差不多一天的時間,,二面很快就來了。 內容不是很多:
聊完之后表示第二天應該會有三面。 3.三面 三面的面試官應該是之前郵件中提到的那位總監(jiān)大佬,,以前應該也是一線的技術大牛,;聊的問題不是很多:
4.筆試 本以為技術面試完了,結果后面告知所有的面試流程都得有筆試了,,于是又參與了一次筆試: 交替打印奇偶數(shù) 這個相對比較簡單,,基于鎖、等待喚醒機制都是可以的,。最后也告知筆試通過,。 之后在推薦我的那位大佬的幫助下戲劇般的通過了整個技術輪(真的很感謝他的認可),并且得知這個消息是在我剛好和 A 部門約好視頻面試時間之后,。 也就意味著我必須拒掉一個部門,! 沒看錯,是我要拒掉一個,。這對我來說確實太難了,,我壓根沒想過還有兩個機會擺在我面前。 最后憑著個人的愛好以及 B 部門的熱情我很不好意思的拒掉了 A 部門,。,。。 HR 面 在面這之前我從來沒有面過這樣大廠的 HR 流程,,于是瘋狂搜索,,希望能彌補點經驗。 也許這就是樂極生悲吧,我確實猜中了 HR 問的大部分問題,,但遺憾的是最終依然沒能通過,。 后來我在想如果我沒有拒掉 A ,會不會結局不一樣了,? 但現(xiàn)實就是如此,沒有那么多假設,,并且每個人也得為自己的選擇負責,! 大概的問題是:
C 部門 HR 這關被 Pass 之后沒多久我居然又收到了第三個部門的邀約,。 說實話當時我是拒絕的,,之前經歷了將近兩個月的時間卻沒能如愿我內心是崩潰的。 我向聯(lián)系我的大佬表達了我的想法,,他倒覺得我最后被 pass 的原因是個小問題,,再嘗試的話會有很大的幾率通過。 我把這事給朋友說了之后也支持我再試試,,反正也沒啥損失嘛,,而且面試的狀態(tài)還在。 所以我又被打了雞血,,才有了下面的面試經過: 1.一面 面試官:服務化框架的選型和差異,? 博主:一起探討了 SpringCloud、Dubbo,、Thrift 的差異,,優(yōu)缺點等。 面試官:一致性 Hash 算法的原理,? 博主:將數(shù)據 Hash 之后落到一個 0 ~ 2^32-1 構成的一個環(huán)上,。。,。,。 面試官:談談你理解的 Zookeeper? 博主:作為一個分布式協(xié)調器,。,。。 面試官:如何處理 MQ 重復消費,? 博主:業(yè)務冪等處理,。。。,。 面試官:客戶端負載算法,? 博主:輪詢、隨機,、一致性 Hash,、故障轉移、LRU 等,。,。 面試官:long 類型的賦值是否是原子的? 博主:不是,。,。。 面試官:volatile 關鍵字的原理及作用,?happen Before,? 博主:可見性、一致性,。,。 2.二面 一面之后大概一周的時間接到了二面的電話: 原以為會像之前一樣直接進入筆試,這次上來先簡單聊了下:
之后才正式進入筆試流程: 這次主要考察設計能力,,其實就是對設計模式的理解?能否應對后續(xù)的擴展性,。 筆試完了之后也和面試官交流,,原以為會是算法之類的測試,后來得知他能看到前幾輪的筆試情況,,特地挑的沒有做過的方向,。 所以大家也不用刻意去押題,總有你想不到的,,平時多積累才是硬道理,。 3.三面 又過了兩周左右,得到 HR 通知,;希望能過去杭州參加現(xiàn)場面試,。并且阿里包了來回的機票酒店等。 可見阿里對人才渴望還是舍得下成本的,。 既然都這樣了,,就當成一次旅游所以去了一趟杭州,。 現(xiàn)場面的時候有別于其他面試,是由兩個面試官同時參與: 給一個場景,,談談你的架構方式,。 這就對平時的積累要求較高了。 還有一個印象較深的是: 在網頁上點擊一個按鈕到服務器的整個流程,,盡量完整,。 其實之前看過,好像是 Google 的一個面試題,。 完了之后讓我回去等通知,,沒有見到 HR 我就知道涼了,果不其然,。 總結 看到這里的朋友應該都是老鐵了,,我也把上文提到的大多數(shù)面試題整理在了 GitHub: https://github.com/crossoverJie/Java-Interview 最后總結下這將近四個月的面試心得:
雖然最后沒能去成阿里,,現(xiàn)在在公司也是一個部門的技術負責人,,在我們城市還有個窩,溫馨的家,,和女朋友一起為想要的生活努力奮斗,。 |
|