上個月4號經過阿里工做的學長進行內推,7天簡歷評估,11號接到電話面試,儘管猝不及防回答倉促,但好在前期準備充分,經過。3天后進行現場面試,通知時間爲早上10點。當日設了七點鬧鐘,結果五點五十三分驚醒後再沒法入睡,起牀,從新翻看以前作的筆記和重點,在lintcode上找了幾道可能性較大的題進行練手。10點準時在螞蟻金服總部開始面試,十點四十七分結束。15號收到通知,現場面經過,16號進行HR面,22號收到Offer。面試
面試內容以下:算法
自我介紹數據庫
項目狀況:編程
對你來講影響最大的一個項目(該面試中有關項目問題都針對該項目展開)?設計模式
爲何會想作這個項目?這個項目的ideal是誰提出來的?瀏覽器
項目中如何實現的大數據的傳輸和存儲緩存
項目中哪一部分最難攻克?如何攻克?性能優化
基礎知識考察:多線程
模塊化的好處架構
Htttp協議
hashmap和concurrenthashmap區別及二者的優缺點
對MySQL的瞭解,和oracle的區別
對設計模式的見解和認知
有哪些設計模式
如何實現分佈式緩存
多線程如何避免死鎖
關於樹的算法題-二叉樹的鋸齒形層次遍歷:http://www.lintcode.com/zh-cn/problem/binary-tree-zigzag-level-order-traversal/
Java的垃圾回收機制
對Runtime的瞭解
電面過程當中很是注重基礎知識的考察,面試前務必對基礎知識內容進行復習和梳理。基礎知識考察的內容通常會圍繞項目內容進行展開,在前期對項目介紹進行準備時需適當換位,思考面試官的提問邏輯,避免給本身設下陷阱。
背景瞭解:
爲何要選擇編程這條路
什麼時候開始編程
如何進行自學
閱讀過那些書籍
項目考察
項目運行過程當中成員是否曾就某一點發生爭執?做爲Leader你是如何解決的?具體事例?
項目最終實現效果
項目具體部分使用的設計模式並簡述選擇理由
項目有何需改進之處並初擬改進方案
第一個項目:
第二個項目:
基礎知識考察:
數據庫的範式
JVM內存模型及調優
瀏覽器的緩存機制
如何解決高併發問題?是否進行過相應程序的編寫?
LintCode 算法題 - 最小子串覆蓋。原題連接:http://www.lintcode.com/zh-cn/problem/minimum-window-substring/
想問的問題
技術面中項目佔了至關一部分時間,項目中從技術到我的團隊領導能力,從完成執行能力到思想靈活度,都是面試官但願獲得的信息。所以,必須對本身的項目多方面展開準備,項目回顧的過程當中需不斷思考改進方案和具體措施。
算法題部分因爲以前練習時作過且在 www.jiuzhang.com/solution 上研究過參考答案,這次應對較爲輕鬆,面試官反應較好。在算法題考查過程當中,正確率和代碼效率都是面試官關注的重點,所以在Lintcode上刷題時必須強調每個細節的改進,不能僅安於正確。上述參考網站中的標準答案工業風較強,適合實際工做,建議在刷題過程當中充分利用。此外,面試前作兩道算法題練手可以使面試時寫算法更爲嫺熟,如時間富裕可嘗試。
業餘愛好
爲何不參加競賽?
你以爲你在項目運行過程當中做爲組長是否最大限度發揮了組員的優點?具體事例?
如何看待阿里在大數據方面的投入?對阿里的發展有什麼建議?對螞蟻金服的發展有什麼見解?
職業規劃,從此想發展的工做方向
家鄉在哪裏,是否願意長期在杭州發展?
薪酬問題及入職狀況
適當藏拙很重要,由於做爲面試者,咱們很難判斷什麼不足對公司來講是沒法容忍的,若是臨場隨性發揮,就容易出現語言漏洞,從而被做爲切入點暴露自身缺陷。所以,面試前要仔細準備各類問題,對語言進行推敲,儘可能將話題引向有利於本身的方向。
而後是學了一套系統化的課程體系,而後就去面試了。若是你也想學習這一套系統化的課程體系,那麼能夠加個人架構羣:705127209 領取資料,裏面會分享一些資深架構師錄製的視頻錄像:有Spring,MyBatis,Netty源碼分析,高併發、高性能、分佈式、微服務架構的原理,JVM性能優化這些成爲架構師必備的資料