溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

阿里巴巴螞蟻金服2020金融核心部門實習面經(jīng)(Redis+IOC+AOP+中間件+分布式鎖+事務(wù)等)

發(fā)布時間:2020-08-08 21:55:50 來源:ITPUB博客 閱讀:166 作者:Java填坑之路 欄目:編程語言

推薦閱讀:

  1. 面試機會不等人,資料看精不看多!史上最全Java技術(shù)資料合集!
  2. 2019年中總結(jié),400道一線大廠高頻精選面試題合集(JVM+Spring+RabbitMQ+Mybatis+Redis+分布式+微服務(wù))
  3. 整理完今年的阿里、騰訊、網(wǎng)易等公司的面試后,我有一個重要發(fā)現(xiàn)

阿里巴巴螞蟻金服2020金融核心部門實習面經(jīng)(Redis+IOC+AOP+中間件+分布式鎖+事務(wù)等)

一面(個人感覺回答得還不錯)

1. 自我介紹
2. 說項目,項目問的非常深(本人提到之前做過的一篇關(guān)于FULL GC的問題定位和優(yōu)化的項目以及一個多并發(fā)的項目)

2.1 對于自己產(chǎn)于過項目的系統(tǒng)定位是否清楚?
2.2 對于系統(tǒng)的各個模塊是否清楚?
2.3 每個接口的tps?
2.4 對于上下游系統(tǒng)的依賴?
2.5 對于使用到的中間件、框架是否清楚?

3. 你覺得你做的項目中最有亮點的事情?
4. memcache redis同類中間的差異、優(yōu)缺點?使用注意點有哪些?

memcache可以存儲的數(shù)據(jù)類型只有字符串類型,而redis可以存儲字符,list,sorted List,hash數(shù)據(jù)類型的數(shù)據(jù);
memcache不支持數(shù)據(jù)持久化,redis支持RDB,AOF持久化;
memcache不支持集群,redis支持redis-cluster集群

5. redis分布式鎖說說

我提到了redis的setnx()方法,以及使用redis的KV結(jié)構(gòu),lock作為key,key對應(yīng)的value使用map結(jié)構(gòu),map中使用請求requestId作為map的key,過期時間作為map的value,獲取鎖使用cas算法,比較時間是否過期來獲取鎖和釋放鎖

6. TCP,UDP
7. 多并發(fā)項目的并發(fā)量,有沒有壓測過,以及QPS,請求的消息量太大,使用自己創(chuàng)建的任務(wù)隊列會不會使內(nèi)存爆?
8. Redis集群主從數(shù)據(jù)同步

主從集群實現(xiàn)了數(shù)據(jù)的讀寫分離,主服務(wù)器負責讀寫,偏重寫,從服務(wù)器只負責讀。主服務(wù)器啟動之后向從服務(wù)器發(fā)送日志文件,從服務(wù)器根據(jù)日志文件進行數(shù)據(jù)的更新,之后如果主服務(wù)器有寫操作,也會向從服務(wù)器發(fā)送相應(yīng)的寫操作

9. Zookeeper實現(xiàn)選舉的原理

zk的選舉過程中其起始所有結(jié)點的狀態(tài)為looking,當某個結(jié)點的選票超過所有結(jié)點數(shù)的一半,該結(jié)點就會成為leader,結(jié)點狀態(tài)為leading,其他結(jié)點會成為followers,結(jié)點狀態(tài)為following。選舉的依據(jù)是(sid,zxid)數(shù)據(jù),sid代表結(jié)點的ID,zxid代表事務(wù)ID,選舉過程中每個結(jié)點第一輪選舉會選舉自己作為leader,將(sid,zxid)發(fā)送給其他結(jié)點,其他結(jié)點收到數(shù)據(jù)(sid,zxid)與自身的數(shù)據(jù)做比較,如果zxid比自身zxid的要大,則直接選舉當前結(jié)點;如果小于,堅持選舉自己;如果zxid相等,比較sid哪個大,大者作為leader。

10. 說說分布式(我說的是Dubbo)
11. 數(shù)據(jù)庫事務(wù),分布式數(shù)據(jù)一致性如何實現(xiàn)?

讀者可以了解一下ZAB協(xié)議,我大概就是圍著ZAB協(xié)議說的

12. SpringIOC,SpringAOP

我簡單說了說IOC,AOP的原理,以及原理依賴的模式

13. 數(shù)據(jù)庫事務(wù)的隔離級別

四大隔離界別:Uncommitted-read Commited-read Repeated-read Serializable分別針對數(shù)據(jù)庫臟讀,不可重復讀,虛讀問題

14. 談?wù)凴PC

RPC遠程調(diào)用,說了說原理,使用到的組件,以及RPC主要的任務(wù):序列化,傳輸數(shù)據(jù),方法調(diào)用(方法對應(yīng)的ID)

15. 算法題:筆試題-最短路徑問題(這道題是通過的)
某物流派送員p,需要給a、b、c、d4個快遞點派送包裹,請問派送員需要選擇什么的路線,才能完成最短路程的派送。假設(shè)如圖派送員的起點坐標(0,0),派送路線只能沿著圖中的方格邊行駛,每個小格都是正方形,且邊長為1,如p到d的距離就是4。隨機輸入n個派送點坐標,求輸出最短派送路線值(從起點開始完成n個點派送并回到起始點的距離)。

我的做法是使用排列算法,將所有的情況排列出來,計算最短路徑

二面(個人感覺回答的特別垃圾,六道問題回答了兩道)

1. 自我介紹
2. 懟項目,各個角度刁難
3. FULL GC問題排查工具

我做項目時其實沒有使用什么工具,就是用Linux命令TOP,TOP交互命令 1,H;jsatck,jstat以及JVM的相關(guān)參數(shù)和JVM日志的查看

4. 從事開發(fā)遇到最具有難度的問題
5. Spring事務(wù),嵌套事務(wù)

這道題其實我是被問懵了,我回答得相當不好,一直回答事務(wù)隔離那一塊,面試完我總結(jié)了一下有關(guān)Spring事務(wù)相關(guān)知識點

6. 面向接口編程的好處是什么

問的問題太抽象,我回答不好,面試官說不夠完善

7. 數(shù)據(jù)庫兩個insert同時操作同一張表,第一個線程操作一半,問第二個線程會發(fā)生什么?

我回答的稀巴爛,下來查了一下,大概就是說這里涉及到的鎖是間歇鎖,讀者可以看看相關(guān)知識

8. 說說死鎖

舉個例子,兩個線程1和2,兩個鎖a和b,線程1拿到a鎖后申請要b鎖,而同時線程2已經(jīng)拿到b鎖,要申請a鎖,兩個線程之間陷入僵持狀態(tài)

總結(jié)

二面技術(shù)面之后,就是HR,這個就不多說了。整體螞蟻金服的面試感受,面試官很專業(yè),要求基礎(chǔ)知識很熟悉,面試之前一定要準備后再去面試。LeetCode題目也要刷。
切記面試前一定要刷題和準備,簡歷上的項目不熟悉的千萬不要寫上去,寫上去的項目備好2-3個技術(shù)方案。

最后

碼字不易,覺得有幫助的可以幫忙點個贊,讓更多有需要的人看到

又是一年求職季,在這里,我為各位準備了一套Java程序員精選高頻面試筆試真題,來幫助大家攻下BAT的offer,題目范圍從初級的Java基礎(chǔ)到高級的分布式架構(gòu)等等一系列的面試題和答案,用于給大家作為參考,需要面試資料的可以 免費獲取

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI