Java開發五面阿里菜鳥驛站架構師,第三面來了一個P10級師兄吊打我,緊張到雙腿都打哆嗦!

一面

問:自我介紹面試

問:說一下你的項目中遇到的難題和怎麼解決的算法

我:(其實個人項目也沒什麼特別高級的東西,就說了下項目裏遇到的bug的解決以及一些功能的實現,其實都是很簡單的東西。我的以爲不必定要用多麼高級的技術,就算是解決一個小bug或實現一個小功能,把遇到bug時的現象以及怎麼去思考並一步步排除仔細說清除,以及本身爲何這麼設計,對這麼設計的一些理解,面試官應該仍是承認的……)設計模式

(講項目的時候,語速比較快,有點舌頭打結,後來聽內推人說面試官給我評語是緊張,其實我也沒怎麼緊張……)數組

問:XX 這個項目主要業務是什麼?有實際應用嗎?安全

我:(大概講了項目的業務,項目沒有實際用過,只是去參加學校的創新項目比賽,因此就說實話了)cookie

問:是去參加創新比賽,那你以爲這個項目的主要創意在哪?session

我:其實我以爲沒什麼創意……架構

面試官:(笑)併發

我:(笑)框架

問:你在項目裏負責什麼?整個項目的設計是你作的嗎?那對項目整個架構設計什麼的能講一下嗎?我:這是我第一次做爲項目技術負責人。對。(其實也就是一個 WEB 的 APP 項目,ssm 的 Controller 、Service 、DAO 分層,而後說了下本身負責模塊的一些設計什麼的……)問:你剛剛說你這個項目都是 http 請求應答模式,那你有沒有考慮其餘模式?

我:(這裏說了下 socket 長鏈接模式,而後說了下本身對請求應答模式以及長鏈接的優劣和適用場景的理解,扯到了 http 報文頭部、nagle 算法、心跳機制什麼的,而後又開始我的對心跳機制的理解……)

問:(大概是以爲我再扯就扯到印度去了,打斷了我……)嗯嗯好,可是如今你去實現長鏈接的話,會這樣從頭開始寫嗎?

我:(提到 Netty ,以後面試官也沒有問 Netty)

問:http 有什麼特色?

我:明文傳輸……(而後還沒來得及說無狀態什麼的)

問:那你的項目有沒有考慮 http 安全問題?

我:(提到 https ,而後說了下原理,怎麼保證消息不泄露、不被篡改)不被篡改的實現就是,先把要發送的消息進行消息散列,好比 MD5 ……

問:MD5 ?

我:不是,我只是舉個消息散列的例子,……

問:MD5 已經不建議使用了好嗎

我:(吞吞吐吐)emmm對我知道 MD5 能夠經過碰撞破解,不安全……可是其實通常的項目(正準備說是否安全取決於破解難度與破解收益的理解,加鹽什麼的……)

問:不建議使用啦,不建議啦(宛如撒嬌般的語氣,這誰頂得住……)

我:emmmmm好吧(好的,你說什麼都對)

(而後好像還問了一些項目相關的其餘問題……)

問:說說 JVM 垃圾回收是怎麼實現的?可達性分析是怎樣的?什麼是GCRoot?

我:可達性分析。從 GCRoot 開始遍歷,若是某個對象不可達,則認定爲垃圾,能夠回收。方法區的引用、函數局部遍歷、類成員變量什麼的……

問:有關 JVM 的 STW

我:主要是說了一下對 STW 的瞭解,而後提到了併發垃圾回收器

問:說一下了解垃圾回收器,瞭解最近的垃圾回收器嗎?

我:(當時我好像是說,知道最新出來了一個 ZGC ,能夠在幾 ms 內回收上 T 級別的垃圾,停頓很短什麼的,而後說了下 CMS 、G1 ,說了下 G1 回收器替換 CMS 的目標,以及 Region 什麼的。可是也沒深刻地瞭解過 G1 ,否則還能夠說更多,不過面試官也沒繼續問……)

問:讀過什麼的源碼嗎?讀過哪些?那你說下 Spring 的 Bean 是怎麼管理的吧

我:讀過。Spring 、Spring MVC 什麼的(好了,接下來要問 Spring AOP 怎麼實現的了吧)。(這不科學啊,不是應該問 AOP 怎麼實現嗎……大概說了下 xml 讀取和解析,而後 BeanFactory ,Resource 、 Registry 什麼的,Map 保存 beanName、class類型與 Bean 的映射關係什麼的)

問:HashMap、HashTable、CurrentHashMap 套餐吃不吃

我:(謝謝招待)

問:TCP 三次握手、狀態轉移,爲何要三次握手?

我:(具體描述了一下三次握手的過程和狀態轉移)須要三次握手,不能兩次是由於, A 向 B 主動鏈接時,若第二次握手的消息丟了,B 覺得鏈接已經創建,A 則覺得 B 沒有收到本身的鏈接請求,A 會重發鏈接請求,B 發現序號不對,只能丟棄,B 發送消息給 A ,A 認爲鏈接還沒創建,只能丟棄……,不須要四次時由於 B 對 A 的 ack 以及本身的序號能夠一塊兒回覆給 A(好像叫捎帶回復什麼的),而(而後也說了下四次揮手過程和狀態轉移)

問:那爲何要四次分手呢?(笑)

我:(糟了,是心動的感受……這誰頂得住……我也不想說「分手」啊,是你要我說「分手」我才說"分手「的啊,我也不想跟你分手的嘛……很差意思,我加戲有點多……)關閉鏈接的時候,A 主動關閉的話,是由於 A 再也不須要發送數據,但這個時候 B 可能還有要發送,只能先回復 ack ,等本身發送完數據,再發送關閉鏈接的請求,也就是第三次揮手……(而後好像順便說了 close_wait 和 time_wait )

問:你這裏說得有點不太清楚,以後最好本身再看看

我:(單身過久,諒解一下)

問:設計模式瞭解嘛。問問你設計模式吧

我:(具體談了一下對 模板方法 的理解以及它在 Spring 什麼的框架裏面的使用,擇其好處而吹之)(又談了下監聽者模式以及它在 swing 和 C#、託管C++ 窗體裏面的使用,復擇其好處而吹之)

以後一些問題時間過久,記不太清了……

二面

這一隔就是 20 天,這誰遭得住……

清明後兩天的樣子,一個晚上接到電話

問:項目

問:簡單算法題,判斷數組裏是否有和爲指定值的兩個數

我:(好像是劍指 offer 仍是什麼的原題?)

問:在學校實驗室當部長的事

我:(稍微講了下經歷)

問:學習方式

問:你班上有比你技術厲害的嗎?

我:(????)

問:優勢和缺點?技術上的優勢?問:你說對 WEB 比較熟悉對吧,詳細說下跨站腳本攻擊XSS

我:(說了下 cookie 、session 、js 注入什麼的)

問:你說對 JVM 比較熟悉,說下垃圾回收算法吧

我:(說了下標記清除、複製、標記整理算法,而後詳細說了下內存碎片、分代收集什麼的的思想)

問:對菜鳥的瞭解

我:emmmm我知道是跟物流相關的,就是,就是供應鏈……就是……其實我不是很瞭解(當場去世……)

問:有什麼問題問我

只記得這麼多了……問他問題的時候才知道他是 leader ,emmm我這不是二面嗎……

三面

面完二面後,內推學長告訴我,接下來有個 P10 要面我……這誰頂得住……

大概兩天後接到電話,面試官好像有點忙,面試時間比較短,問得也比較簡單……

問:學校上的課

問:項目

問:自學學到了什麼?

問:SpringBoot

我:(說了下約定優於配置,@Condition 註解什麼的)

也只記得這麼多了,不過原本也只有 10 多分鐘……估計大佬是真的比較忙……

四面(hr 面)

16號接到電話,要我 18 號去武漢現場面試……這誰頂得住……

自我介紹

實驗室經歷(這裏聊了挺久)

家裏狀況、意向城市

對菜鳥的瞭解(咋又是這個問題……物流、就是物流,emmm物流……當場去世……)

有什麼問題

五面

面完hr面打算去看看武昌起義記念館……

一小時後剛下地鐵,接到電話說要我回去再加一輪技術面……

有一種剛高考完後被告知要再加一次高考的感受……這誰頂得住……

自我介紹

項目

類加載

Class.forName 是否會初始化類(這裏我智障了,振振有詞地說說不會初始化……感受要涼。。)

static 塊會執行幾回?怎麼讓它執行第二次?(我說用另外一個 ClassLoader 來加載……好像不是他要的答案,難道有其餘方法嗎。。?)

Full GC 發生的條件、怎麼設置永久代和堆的大小、怎麼減小 Full GC 、JVM 調優

比較熟悉的技術,是否有去了解底層

通過一個星期的漫長等待最終仍是拿下了Offer,成功入職阿里菜鳥驛站架構師!我認爲如今面試除了須要你本身掌握豐富的技術棧以外,也須要時時刻刻去勤刷面試題,分享一下自刷的面試題庫和補充技術棧的PDF吧,祝你們Offer多多哈!

須要所有免費領取所有的學習資料的朋友麻煩幫忙點贊+評論+收藏這篇文章+關注我,而後加小助理VX:wjj2632646免費領取!

相關文章
相關標籤/搜索