【阿里面經(jīng)分享】螞蟻金服研發(fā)面經(jīng)+阿里中間件研發(fā)面經(jīng)+面試題

螞蟻金服研發(fā)面經(jīng)

  • 螞蟻金服中間件

  • 螞蟻財(cái)富

  • 研發(fā)工程師

之前面了阿里中間件的提前批,不過沒走流程。同期還面了螞蟻中間件的兩輪面試,被告知不走流程就不能面了,所以也沒面完。

后來走了螞蟻金服財(cái)富事業(yè)群這邊的流程。前幾天剛剛面完HR。

正好今天分享一下面經(jīng),大家可以多交流交流哈。

1. 螞蟻中間件(面了三次,兩次一面,一次二面)
2. 螞蟻財(cái)富(1+2+交叉+HR)

螞蟻金服中間件一號(hào)機(jī)

一面

自我介紹

  1. Java中的多線程了解么,線程池的增長(zhǎng)策略和拒絕策略了解么,說一下。

  2. 講一下線程增加的過程和拒絕策略的執(zhí)行。

  3. 講了一下fixthreadpool的增長(zhǎng)策略,然后幾種拒絕策略。

  4. 高并發(fā)情況下,如何使用線程池,用哪個(gè),問了一下線程結(jié)束要多久,是否在下一個(gè)線程結(jié)束前完成(我想的是cachethreadpool,其實(shí)思路錯(cuò)了)。

  5. 表示并發(fā)量比較大,所以我說可以考慮并發(fā)量是否大于隊(duì)列長(zhǎng)度加上最大線程數(shù)量和,如果不超過的話可以是用fixthreadpool。

  6. 并發(fā)juc了解么,有哪些線程安全的list。說了個(gè)copyonwritelist,想了半天說不出第二個(gè)了。尷尬,那就vector把,不是juc里的。
    貌似并發(fā)包里確實(shí)沒有其他list啊。
    還問了concurrenthashmap1.8的改動(dòng)。

  7. HTTP協(xié)議了解么,和tcp有什么區(qū)別。

  8. http1.0和2.0的區(qū)別。
    答了TCP連接復(fù)用,加入ssl,以及壓縮請(qǐng)求頭。
    其中哪個(gè)更新比較有意義,為什么。我說的是壓縮請(qǐng)求頭,這樣可以優(yōu)化HTTP服務(wù)的性能。

  9. Java的網(wǎng)絡(luò)編程,比如NIO和Socket了解么。
    說下BIO和NIO的區(qū)別把。
    我說了BIO的阻塞用法,以及NIO的IO多路復(fù)用用法,說了selector,seletedkey,channel等類的使用流程,以及單線程處理連接,多線程處理IO請(qǐng)求的好處。

  10. 說一下NIO的類庫(kù)或框架
    講了netty,寫過服務(wù)端和客戶端的demo,沒有在生產(chǎn)中實(shí)踐。

  • channelhandler負(fù)責(zé)請(qǐng)求就緒時(shí)的io響應(yīng)。
  • bytebuf支持零拷貝,通過邏輯buff合并實(shí)際buff。
  • eventloop線程組負(fù)責(zé)實(shí)現(xiàn)線程池,任務(wù)隊(duì)列里就是io請(qǐng)求任務(wù),類似線程池調(diào)度執(zhí)行。
  • acceptor接收線程負(fù)責(zé)接收tcp請(qǐng)求,并且注冊(cè)任務(wù)到隊(duì)列里。
  1. 倒排索引了解么,我說不了解。
    其實(shí)就是搜索引擎的基礎(chǔ)索引,根據(jù)關(guān)鍵字到文檔的映射關(guān)系建立索引,中文關(guān)鍵字可以使用中文分詞,查詢時(shí)通過關(guān)鍵字來定位索引,并且進(jìn)行排序后得到文檔結(jié)果集。
    然后面試官說講一下數(shù)據(jù)庫(kù)把,說下sql優(yōu)化的方式
    我說的是MySQL,先講了一下sql使用索引的優(yōu)化,然后基于索引說了幾條優(yōu)化方案。

  2. 索引什么時(shí)候會(huì)失效變成全表掃描
    說了聯(lián)合索引的前綴匹配,跳躍索引,聚合函數(shù),判空和<>這些情況。

  3. 分布式的paxos和raft算法了解么
    了解過,但是講不清楚。

paxos:多個(gè)proposer發(fā)請(qǐng)?zhí)嶙h(每個(gè)提議有id+value),acceptor接受最新id的提議并把之前保留的提議返回。當(dāng)超過半數(shù)的accetor返回某個(gè)提議時(shí),此時(shí)要求value修改為propeser歷史上最大值,propeser認(rèn)為可以接受該提議,于是廣播給每個(gè)acceptor,acceptor發(fā)現(xiàn)該提議和自己保存的一致,于是接受該提議并且learner同步該提議。

raft:raft要求每個(gè)節(jié)點(diǎn)有一個(gè)選主的時(shí)間間隔,每過一個(gè)時(shí)間間隔向master發(fā)送心跳包,當(dāng)心跳失敗,該節(jié)點(diǎn)重新發(fā)起選主,當(dāng)過半節(jié)點(diǎn)響應(yīng)時(shí)則該節(jié)點(diǎn)當(dāng)選主機(jī),廣播狀態(tài),然后以后繼續(xù)下一輪選主。

  1. 中間件知道哪些,阿里的dubbo,rocketmq的事務(wù)消息,問了TCC回答說這個(gè)之前沒看明白。
    說了mycat實(shí)現(xiàn)分表分庫(kù),消息隊(duì)列kafka和rabbitmq等。

  2. 平時(shí)看什么書,怎么學(xué)習(xí)的。還跟我說他們部門3個(gè)華科的,校友多多。

  3. Spring和Springmvc講一下。講了Spring的ioc和aop,Springmvc的基本架構(gòu),請(qǐng)求流程。

螞蟻金服中間件二號(hào)機(jī)

一面

  1. 自我介紹

  2. 講一下ArrayList和linkedlist的區(qū)別,ArrayList的擴(kuò)容方式,擴(kuò)容時(shí)機(jī)。

  3. hashmap的實(shí)現(xiàn)。

  4. NIO了解么,講一下和BIO的區(qū)別,AIO呢。阻塞,非阻塞,異步。具體。

  5. 你說了解分布式服務(wù),那么你怎么理解分布式服務(wù)。

  6. 你說了解Tomcat的基本原理,了解的是哪一部分,基本架構(gòu),connector和container

  7. 你在項(xiàng)目中怎么用到并發(fā)的

  8. docker和虛擬機(jī)講一下。

  9. 有啥想問的

螞蟻金服中間件二面

  1. 項(xiàng)目

  2. 說一下Spring源碼把,它的架構(gòu),流程。

  3. Spring的bean如果要在實(shí)例化過程中修改其某一個(gè)成員變量,應(yīng)該怎么做呢。不通過構(gòu)造方法,并且AOP也并不能實(shí)現(xiàn)。

  4. Tomcat的類加載器了解么,回答不了解只了解Java的類加載器。

  5. 自定義類加載器怎么實(shí)現(xiàn),其中哪個(gè)方法走雙親委派模型,哪個(gè)不走,不走的話怎么加載類(實(shí)現(xiàn)findclass方法,一般用defineclass加載外部類),如何才能不走雙親委派。(重寫loadclass方法)

  6. 布隆過濾器了解么,講了ip地址過濾的布隆過濾器實(shí)現(xiàn)。

  7. 聽說你項(xiàng)目用過docker,講一下docker的實(shí)現(xiàn)原理,說了虛擬機(jī)一般要對(duì)內(nèi)核進(jìn)行虛擬化,docker則用cgroup和namespace分別進(jìn)行硬件和命名空間的隔離。

  8. 項(xiàng)目中遇到的最大挑戰(zhàn)。

  9. 項(xiàng)目中學(xué)到最多的東西

  10. 有什么想問

螞蟻財(cái)富事業(yè)部

一面

  1. 億級(jí)ip地址過濾

  2. 排序算法和適用場(chǎng)景

  3. 數(shù)據(jù)庫(kù)的事務(wù)有什么用

  4. 數(shù)據(jù)庫(kù)的悲觀鎖和樂觀鎖

  5. 數(shù)據(jù)的索引有什么用,怎么實(shí)現(xiàn)

  6. 聯(lián)合索引的匹配原則

  7. 數(shù)據(jù)庫(kù)萬級(jí)變成億級(jí),怎么處理。分庫(kù)分表,分片規(guī)則hash和取余數(shù)。使用mycat中間件實(shí)現(xiàn)。

  8. redis這種nosql和mysql有什么區(qū)別,講了一遍redis

  9. Spring了解不,用到了哪些設(shè)計(jì)模式,說了四個(gè),單例,工廠,代理,觀察者,模板其實(shí)也算。

  10. web請(qǐng)求的過程,講了瀏覽器到http服務(wù)器的過程,再講了mvc的請(qǐng)求處理過程。

  11. 你的職業(yè)規(guī)劃

  12. 沒了。

二面

沒有二面,好像說是跳過了一輪,直接技術(shù)主管面。

三面:

  1. 項(xiàng)目中的多線程,為什么用chm,還有什么可以避免并發(fā)問題。

  2. 平時(shí)在看什么,寫什么博客,我說分布式,關(guān)注什么內(nèi)容,大后端,Hadoop生態(tài)。

  3. dubbo了解么

  4. dubbo的基本架構(gòu),幾個(gè)組件說一下

  5. 服務(wù)生產(chǎn)者和消費(fèi)者怎么進(jìn)行rpc調(diào)用

  6. 怎么進(jìn)行服務(wù)注冊(cè)發(fā)現(xiàn) zk實(shí)現(xiàn)具體說說

  7. dubbo的負(fù)載均衡怎么做,講一下具體代碼實(shí)現(xiàn)。

  8. dubbo的服務(wù)容錯(cuò)怎么做,怎么知道服務(wù)器宕機(jī)了 zk的心跳機(jī)制維持服務(wù)器連接

  9. 好了我要問的差不多啦。

交叉面

隔壁部門的技術(shù)主管,問了一道算法題。。就沒問別的了。。我也是很醉。。。

題目是鏈表的排序,扯了4、5種方案,轉(zhuǎn)成數(shù)組,直接排序,拆分再排序,順序連接等等。。然后我表示不能再優(yōu)化了。他就說沒別的問題了。。。有點(diǎn)吃驚。

HR面:

  1. 興趣愛好

  2. 三年到五年的職業(yè)規(guī)劃

  3. 意向公司和城市

  4. 實(shí)習(xí)經(jīng)歷和收獲

  5. 實(shí)習(xí)中最大的困難

  6. 為什么換公司,為什么拒絕菜鳥實(shí)習(xí)offer

  7. 你的缺點(diǎn)和優(yōu)點(diǎn)

  8. 你覺得你比其他人優(yōu)秀的地方說三個(gè)

  9. 為什么想來我們部門

  10. 巴拉巴拉

阿里中間件研發(fā)面經(jīng)

我參與了阿里巴巴中間件部門的提前批面試,一共經(jīng)歷了四次面試,拿到了口頭offer。這是我的面經(jīng),在這里分享給大家。

一面:

  1. 自我介紹

  2. 項(xiàng)目中做了什么,難點(diǎn)呢。

  3. Java的線程池說一下,各個(gè)參數(shù)的作用,如何進(jìn)行的。

  4. Redis講一下

  5. 分布式系統(tǒng)的全局id如何實(shí)現(xiàn)。用zookeeper如何實(shí)現(xiàn)的呢,機(jī)器號(hào)+時(shí)間戳即可。

  6. 分布式鎖的方案,redis和zookeeper那個(gè)好,如果是集群部署,高并發(fā)情況下哪個(gè)性能更好。

  7. kafka了解么,了解哪些消息隊(duì)列。

  8. 想做業(yè)務(wù)還是研究。

  9. 然后出了一道題,linux的訪問權(quán)限是rwx格式的。使用一個(gè)類支持訪問權(quán)限的增刪改查,并且注意使用的數(shù)據(jù)格式以及方法效率,規(guī)范。給了一個(gè)多小時(shí)寫題。

耗時(shí)將近30分鐘。

二面:

  1. 介紹你做的項(xiàng)目和其中的難點(diǎn)。

  2. 上次面試官問的問題,反射的作用是什么。

  3. 數(shù)據(jù)倉(cāng)庫(kù),多線程和并發(fā)工具等。

  4. 私有云,docker和k8s等。

  5. 了解哪些中間件,dubbo,rocketmq,mycat等。

  6. dubbo中的rpc如何實(shí)現(xiàn)。

  7. 自己實(shí)現(xiàn)rpc應(yīng)該怎么做

  8. dubbo的服務(wù)注冊(cè)與發(fā)現(xiàn)。

  9. 聽說我是非科班,于是問了些排序算法

耗時(shí)將近30分鐘。

三面:

三面不是面試,而是筆試,耗時(shí)三個(gè)小時(shí),考的是Java核心的基礎(chǔ)。但是好像不能透題,就不說了。都挺有難度的。

大概說一下就是有幾個(gè)考點(diǎn),Java并發(fā)的知識(shí)點(diǎn),集合類,線程池,多線程之間的通信等。

HR面:

聊人生談理想,HR小姐姐非常溫柔,交流十分愉快。30分鐘。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容