自信,緊張,焦慮,意外?螞蟻金服難忘的四面經(jīng)歷,真的太刺激了
前言
前段時間,螞蟻金服的熱度可不小,互聯(lián)網(wǎng)圈人人都在討論它上市的事情,實際上螞蟻金服上市是遲早的事情。這一下,螞蟻的員工含金量上升了不少,那我之前螞蟻提前批這波面經(jīng),也是時候分享了。
這次面試,可以說是一波三折,波濤洶涌了,原本我是一個挺自信的人的,所以在面試前我算是處于一個斗志昂揚的狀態(tài),奈何在經(jīng)歷一面二面意志力被消磨了不少,雖然三面準備充足,但整體下來對自己表現(xiàn)不滿意,所以以為是沒戲了,沒想到意外接來了HR面的通知,于是就這么意外的拿到了offer。
下面就對這次螞蟻金服的面試體驗進行一個分享,由于面試題比較多,所以只挑選了一些有針對性的核心題放在這里解析,如果你需要完整pdf版,可以免費提供給你,私信口令“面試題”即可。

螞蟻金服意外的第一面
1、講一講ArrayList和LinkedList區(qū)別?
ArrayList 是一個可改變大小的數(shù)組。當更多的元素加入到ArrayList中時,其大小將會動態(tài)地增長。內(nèi)部的元素可以直接通過get與set方法進行訪問,因為ArrayList本質(zhì)上就是一個數(shù)組,
LinkedList 是一個雙鏈表,在添加和刪除元素時具有比ArrayList更好的性能.但在get與set方面弱于ArrayList。
當然,這些對比都是指數(shù)據(jù)量很大或者操作很頻繁的情況下的對比,如果數(shù)據(jù)和運算量很小,那么對比將失去意義。
2、什么情況會造成內(nèi)存泄漏?
在Java中,內(nèi)存泄漏就是存在一些被分配的對象,這些對象有下面兩個特點:
首先,這些對象是可達的,即在走向圖中,存在通路可以與其相連;
其次,這些對象是無用的,即程序以后不會再使用這些對象。
如果對象滿足這兩個條件,這些對象就可以判定為Java中的內(nèi)存泄漏,這些對象不會被GC所回收,然而它卻占用內(nèi)存。
3、什么是線程死鎖,如何解決 ?

4、紅黑樹是什么?怎么實現(xiàn)?時間復雜度
5、TCP三次握手?

螞蟻金服突然的第二面
1、Storm怎么保證一致性 ?
Storm是一個分布式的流處理系統(tǒng),利用anchor和ack機制保證所有tuple都被成功處理。如果tuple出錯,則可以被重傳,但是如何保證出錯的tuple只被處理一次呢?Storm提供了一套事務性組件Transaction Topology,用來解決這個問題。
Transactional Topology目前已經(jīng)不再維護,由Trident來實現(xiàn)事務性topology,但是原理相同。
2、說一下hashmap以及它是否線程安全?

3、十億條淘寶購買記錄,怎么獲取出現(xiàn)最多的前十個 ?
這是一道典型的有限內(nèi)存的海量數(shù)據(jù)處理的題目。一般這類題目的解答無非是以下幾種:
分治,hash映射,堆排序,雙層桶劃分,Bloom Filter,bitmap,數(shù)據(jù)庫索引,mapreduce等。
具體情形都有很多不同的方案。這類題目可以到網(wǎng)上搜索一下,了解下套路,后面就基本都會了。
4、平時有沒有用linux系統(tǒng),怎么查看某個進程 ?
ps aux|grep java 查看java進程
ps aux 查看所有進程
ps –ef|grep tomcat 查看所有有關(guān)tomcat的進程
ps -ef|grep --color java 高亮要查詢的關(guān)鍵字
kill -9 19979 終止線程號位19979的進程5、說一下Innodb和MySIAM的區(qū)別?
6、說一下jvm內(nèi)存模型,介紹一下你了解的垃圾收集器 ?
其實并沒有jvm內(nèi)存模型的概念。應該是Java內(nèi)存模型或者jvm內(nèi)存結(jié)構(gòu),這里面試者一定要聽清楚問的是哪個,再回答。
7、其他問題
100個有序的整型,如何打亂順序?
如何設(shè)計一個可靠的UDP協(xié)議?
螞蟻金服準備充足的第三面
1、介紹一下hashmap?
HashMap真的是面試高頻題,多次面試都問到了,一定要掌握。
2、介紹一下并發(fā)?
這里可以把整個并發(fā)的體系都說下,包括volatile、synchronized、lock、樂觀悲觀鎖、鎖膨脹、鎖降級、線程池等
3、銀行賬戶讀寫怎么做?
我說了讀寫鎖以及可能出現(xiàn)死鎖問題
4、說一下關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫的區(qū)別 ?
5、如何訪問鏈表中間節(jié)點?
6、說下進程間通信,以及各自的區(qū)別?
進程間通信是指在不同進程之間傳播或交換信息。方式通常有管道(包括無名管道和命名管道)、消息隊列、信號量、共享存儲、Socket、Streams等。
7、訪問淘寶網(wǎng)頁的一個具體流程,從獲取ip地址,到怎么返回相關(guān)內(nèi)容?
螞蟻金服十分焦慮的HR面
1、有沒有遇到過什么比較大的挫折?
這種問題主要考察面試者遇見困難是否能堅持下去,并且可以看出他的解決問題的能力。
可以簡單描述挫折,并說明自己如何克服,最終有哪些收獲。
2、有之后清晰的職業(yè)規(guī)劃嗎?說說看
表明自己決心,首先自己不準備繼續(xù)求學了,必須找工作了。然后說下自己不會短期內(nèi)換行業(yè),或者換工作,自己比較喜歡,希望可以堅持幾年看自己的興趣再規(guī)劃之類的。
3、說一下你對阿里的認識吧
這個比較簡答,夸就行了。
4、有什么崇拜的人嗎?為什么?
5、最理想的就業(yè)城市是哪里?
6、說一件你自己記憶里印象最深刻的一件事吧

總結(jié)
實際上,提前批考察的更多的是基礎(chǔ)知識,主要是因為現(xiàn)在的很多大公司都有自己在用的框架,基本上是進公司以后再去重新學習這些框架知識,所以基礎(chǔ)部分是提前批考察的關(guān)鍵,看你的基礎(chǔ)知識是否夠扎實!
必備知識點包括:
操作系統(tǒng)
Linxu
數(shù)據(jù)庫
數(shù)據(jù)結(jié)構(gòu)
算法
java(基礎(chǔ)、容器、高并發(fā)、jvm)
計算機網(wǎng)絡
面試螞蟻金服,你必須要做好的功課
功課一:了解公司,摸清喜好,定制簡歷
我們都知道,螞蟻金服是一家互聯(lián)網(wǎng)金融公司,所以在對員工喜好和技術(shù)傾向方面與很多互聯(lián)網(wǎng)公司不同,所以在面試螞蟻金服之前,一定要了解清楚這家公司的信息,摸清好它們的喜好,這樣才能有能力去定制簡歷,通過簡歷篩選的第一關(guān)。
在投螞蟻金服之前,我特意把自己的簡歷進行了修改,也是參照的網(wǎng)上的模板,和自己舊版簡歷對比,確實加分不少。(私信“簡歷”免費領(lǐng)取18種簡歷模板)

簡歷模板-1

簡歷模板-2
功課二:梳理技術(shù)棧,提升廣度和深度
筑基必備技能:并發(fā)編程+JVM剖析+網(wǎng)絡編程與高效IO+Mysql深度進階+深入Tomcat
性能直線提升架構(gòu)技術(shù):分布式架構(gòu)+Zookeeper+Nginx+RabbitMQ+RocketMQ+Kafka
高效存儲讓項目性能起飛:Redis+mongoDB+MySQL高可用+Mycat
分布式擴展到微服務架構(gòu):SpringBoot+SpringCloud+SpringCloud Alibaba+docker+k8s
設(shè)計思想解讀開源框架:六大原則+設(shè)計模式+Spring5源碼解讀+SpringMVC框架源碼解讀+Mybatis源碼

當然,這套技術(shù)路線圖不完全要求全部掌握,尤其是對于剛工作的或經(jīng)驗不多的人來說,但作為程序員,我們需要具備這種提升自己技術(shù)廣度和深度的思維,因此這條架構(gòu)師發(fā)展路線圖從基礎(chǔ)-進階-實戰(zhàn)均涉及到了,非常全面具體。(附學習路線圖+實戰(zhàn)電子書+源碼筆記,私信“螞蟻金服”免費獲?。?/span>
功課三:刷刷歷年真題,積累經(jīng)驗
對于應屆生或是工作經(jīng)驗不足的程序員來說,刷題是應對面試最快捷最有效的方式,能夠讓自己迅速掌握面試公司的面試情況,至少能夠應對50%以上的內(nèi)容。
在面試螞蟻金服之前,我就狠狠的刷了一波題,實際上問的內(nèi)容都差不了太多,學會舉一反三才是刷題的精髓之處。
關(guān)于刷題,我也準備了一套面試大禮包分享給大家:

面試題集錦

歷年BAT等一線大廠面試專題

Java面試核心知識點
寫在最后
羅馬不是一天建成的!成為技術(shù)大牛的道路也不是一個月一年就能走完的,不僅僅軟件開發(fā)這個行業(yè)如此,其他行業(yè)亦是如此。
剛踏上掉發(fā)路上的我,一直在努力!
以上文章內(nèi)容中,涉及到的所有pdf文檔資料均可以免費分享給你們,只需要你多多支持我即可!
——打包獲?。俊稗D(zhuǎn)發(fā)加評論,關(guān)注我以后,私信口令「螞蟻金服」免費領(lǐng)取”
本文就是愿天堂沒有BUG給大家分享的內(nèi)容,大家有收獲的話可以分享下,想學習更多的話可以到微信公眾號里找我,我等你哦。
