一面(個人感徑訓答得還不錯)
1. 自我介紹
2. 說專案,專案問的非常深(本人提到之前做過的一篇關于FULL GC的問題定位和優化的專案以及一個多并發的專案)
2.1 對于自己產于過專案的系統定位是否清楚?
2.2 對于系統的各個模塊是否清楚?
2.3 每個介面的tps?
2.4 對于上下游系統的依賴?
2.5 對于使用到的中間件、框架是否清楚?
3. 你覺得你做的專案中最有亮點的事情?
4. memcache redis同類中間的差異、優缺點?使用注意點有哪些?
memcache可以存盤的資料型別只有字串型別,而redis可以存盤字符,list,sorted List,hash資料型別的資料;
memcache不支持資料持久化,redis支持RDB,AOF持久化;
memcache不支持集群,redis支持redis-cluster集群
5. redis分布式鎖說說
我提到了redis的setnx()方法,以及使用redis的KV結構,lock作為key,key對應的value使用map結構,map中使用請求requestId作為map的key,過期時間作為map的value,獲取鎖使用cas演算法,比較時間是否過期來獲取鎖和釋放鎖
6. TCP,UDP
7. 多并發專案的并發量,有沒有壓測過,以及QPS,請求的訊息量太大,使用自己創建的任務佇列會不會使記憶體爆?
8. Redis集群主從資料同步
主從集群實作了資料的讀寫分離,主服務器負責讀寫,偏重寫,從服務器只負責讀,主服務器啟動之后向從服務器發送日志檔案,從服務器根據日志檔案進行資料的更新,之后如果主服務器有寫操作,也會向從服務器發送相應的寫操作
9. Zookeeper實作選舉的原理
zk的選舉程序中其起始所有結點的狀態為looking,當某個結點的選票超過所有結點數的一半,該結點就會成為leader,結點狀態為leading,其他結點會成為followers,結點狀態為following,選舉的依據是(sid,zxid)資料,sid代表結點的ID,zxid代表事務ID,選舉程序中每個結點第一輪選舉會選舉自己作為leader,將(sid,zxid)發送給其他結點,其他結點收到資料(sid,zxid)與自身的資料做比較,如果zxid比自身zxid的要大,則直接選舉當前結點;如果小于,堅持選舉自己;如果zxid相等,比較sid哪個大,大者作為leader,
10. 說說分布式(我說的是Dubbo)
11. 資料庫事務,分布式資料一致性如何實作?
讀者可以了解一下ZAB協議,我大概就是圍著ZAB協議說的
12. SpringIOC,SpringAOP
我簡單說了說IOC,AOP的原理,以及原理依賴的模式
13. 資料庫事務的隔離級別
四大隔離界別:Uncommitted-read Commited-read Repeated-read Serializable分別針對資料庫臟讀,不可重復讀,虛讀問題
14. 談談RPC
RPC遠程呼叫,說了說原理,使用到的組件,以及RPC主要的任務:序列化,傳輸資料,方法呼叫(方法對應的ID)
15. 演算法題:筆試題-最短路徑問題(這道題是通過的)
如圖,某物流派送員p,需要給a、b、c、d4個快遞點派送包裹,請問派送員需要選擇什么的路線,才能完成最短路程的派送,假設如圖派送員的起點坐標(0,0),派送路線只能沿著圖中的方格邊行駛,每個小格都是正方形,且邊長為1,如p到d的距離就是4,隨機輸入n個派送點坐標,求輸出最短派送路線值(從起點開始完成n個點派送并回到起始點的距離),
我的做法是使用排列演算法,將所有的情況排列出來,計算最短路徑
二面(個人感徑訓答的特別垃圾,六道問題回答了兩道)
1. 自我介紹
2. 懟專案,各個角度刁難
3. FULL GC問題排查工具
我做專案時其實沒有使用什么工具,就是用Linux命令TOP,TOP互動命令 1,H;jsatck,jstat以及JVM的相關引數和JVM日志的查看
4. 從事開發遇到最具有難度的問題
5. Spring事務,嵌套事務
這道題其實我是被問懵了,我回答得相當不好,一直回答事務隔離那一塊,面試完我總結了一下有關Spring事務相關知識點
6. 面向介面編程的好處是什么
問的問題太抽象,我回答不好,面試官說不夠完善
7. 資料庫兩個insert同時操作同一張表,第一個執行緒操作一半,問第二個執行緒會發生什么?
我回答的稀巴爛,下來查了一下,大概就是說這里涉及到的鎖是間歇鎖,讀者可以看看相關知識
8. 說說死鎖
舉個例子,兩個執行緒1和2,兩個鎖a和b,執行緒1拿到a鎖后申請要b鎖,而同時執行緒2已經拿到b鎖,要申請a鎖,兩個執行緒之間陷入僵持狀態
總結
二面技術面之后,就是HR,這個就不多說了,整體螞蟻金服的面試感受,面試官很專業,要求基礎知識很熟悉,面試之前一定要準備后再去面試,LeetCode題目也要刷,
切記面試前一定要刷題和準備,簡歷上的專案不熟悉的千萬不要寫上去,寫上去的專案備好2-3個技術方案,
最后
碼字不易,覺得有幫助的可以幫忙轉發一下,讓更多有需要的人看到
又是一年求職季,在這里,我為各位準備了一套Java程式員精選高頻面試筆試真題,來幫助大家攻下BAT的offer,題目范圍從初級的Java基礎到高級的分布式架構等等一系列的面試題和答案,用于給大家作為參考,需要的可以【轉發+關注】后臺私信我【資料】即可免費獲取,以下是部分資料截圖
記得【轉發+轉發+轉發】!!!



由于篇幅原因就不一一展示了,需要的麻煩點贊加關注,加助理VX:mxx2020666,免費領取
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/198092.html
標籤:python
