1. 程式人生 > >螞蟻金服的電話一面

螞蟻金服的電話一面

流程

投的是螞蟻金服的深圳公司,在我投簡歷的第二天就打電話過來了,效率十分快,快到我一點準備都沒有,等他打電話過來的時候,我還以為要去現場面了,結果後來在網上查了查,才知道原來是電面。由於是週五打得電話,到週五晚上7點鐘的時候,面試官打電話說沒有時間,就把面試推到週一了。

週末的時候我便感覺抱一下佛腳,看了一下免得問的一臉懵逼。

週一晚上8點的時候,電話打來了。聽聲音好像一直是一個人,年紀不大。

自我介紹

我那時有點蒙,就隨便介紹了一下啊

工作經歷和工作專案

專案問的是重構這一塊,答的並不算好,當時有點蒙,自己列出的要點沒有答全,只是答出了設計量太大,當時設計上的缺陷,沒有體現專案環境艱苦,沒有文件,專案缺乏管理一團遭。

接著問了一些多執行緒,包括多執行緒併發怎麼從設計上解決。

我的回答是實際就是生產者和消費者模型中,生產者產生速度過快,消費者消費來不及的情況,中間加上訊息佇列緩衝併發,service橫向擴充。

接著問了concurrent包中的concurrentHashMap,與hashTable有什麼不同。

我說不知道,沒有看過這個,但是看過一些queue的原始碼。

接著說queue

回答語氣有點輕浮,說了一下linkedListQueue,LinkedTransferQueue,延時queue,優先順序queue,說了一下transfer的無鎖自旋實現。

接著怎麼保證多執行緒的事務

我問了一下是多執行緒的事務還是分散式的事務,感覺有點怪的問題,他說是多執行緒事務,我就簡單回答說用表去做,可以給表加鎖,鎖行記錄。說了一下select for update,和用version欄位實現樂觀鎖。如果是分散式,可以說說事務的強一致性和弱一致性。說多執行緒可以說說無狀態類和有狀態類。

接著說dubbo的協議,說不會,問IO與NIO,不會,問http,不是很清楚,問tcp也不太瞭解,我直接就說網路一塊不太瞭解。

接著問了一下spring

我說spring的核心是IOC和AOP,IOC的實現我猜測是用反射做的。AOP使用動態代理。

接著問類載入

這個我說不會,jvm我只瞭解過記憶體模型和GC相關的東西

然後閒扯了一下

我問了一下面試中有什麼需要加強的,他說基礎,基礎懂了很多東西瞭解起來都容易很多,沒有問他們部門的情況,他問了我的求職意向,我說阿里的資料量大,很多時候是技術環境驅動學習,我覺得阿里的環境會驅動學習,我十分想去阿里。但語氣有點開玩笑。問了一下我在專案的表現情況,我這裡有點囉嗦,把專案的職責都說了一遍,沒有會說具體,比如那塊那塊是我做的之類的。

總結

能改進的就是下次對於大廠的面試,不要太過激動,語氣平緩一點,不要太激動。

第二就是一定要了解一下jvm的類載入機制

第三就是網路一塊一定要加強一下