【小家面試】螞蟻金服(2018年)Java一面面試題
相關閱讀
【小家java】java5新特性(簡述十大新特性) 重要一躍
【小家java】java6新特性(簡述十大新特性) 雞肋升級
【小家java】java7新特性(簡述八大新特性) 不溫不火
【小家java】java8新特性(簡述十大新特性) 飽受讚譽
【小家java】java9新特性(簡述十大新特性) 褒貶不一
【小家java】java10新特性(簡述十大新特性) 小步迭代
【小家java】java11新特性(簡述八大新特性) 首個重磅LTS版本
每篇一句
我們都是農村走出來的孩紙,不能拼爹,只能拼命
廢話不多說,直接把印象中的面試題貼出來:
雖然我自己沒有完全答得很好,但本文給出一些參考性的答案。如果覺得不妥的,可以給我留言討論
1、自我介紹、自己做的專案和技術領域
略
2、專案中的監控:常見的監控指標有哪些?
QPS、進出口流量、CPU使用率、記憶體使用率、磁碟使用率、谷值和峰值
3、微服務涉及到的技術以及需要注意的問題有哪些?
略
4、註冊中心你瞭解了哪些?
Eureka、consul、zk。使用過Eureka、consul
5、consul 的可靠性你瞭解嗎?
consul是google開源的一個使用go語言開發的服務發現、配置管理中心服務。內建了服務註冊與發現框 架、分佈一致性協議實現、健康檢查、Key/Value儲存、多資料中心方案,不再需要依賴其他工具(比如ZooKeeper等)
它使用 Raft 演算法來保證一致性, 比複雜的 Paxos 演算法更直接
支援http和dns協議封口
相比同類的服務發現與配置的主流的產品,我個人更看好的功能是DNS API,並且提供簡單的web管理介面。
高可用叢集:首先部署一個3節點的consul server 叢集,用於提供主要服務。其次redis主從服務部署,consul client 並且註冊服務,並提供讀域名和寫域名。最後 APP應用服務的DNS解析指向consul server 節點,通過consul dns解析 獲得後端的redis master和slave的ip地址。當故障發生,redis的主從切換時。consul會自動做DNS和域名的對應關係。
6、consul 的機制你有沒有具體深入過?有沒有和其他的註冊中心對比過?
這個接觸較少
7、專案用 Spring 比較多,有沒有了解 Spring 的原理?AOP 和 IOC 的原理
略
8、Spring Boot除了自動配置,相比傳統的 Spring 有什麼其他的區別?
遵循"習慣優於配置"原則,使用Spirng Boot只需很少的配置,大部分時候可以使用預設配置;
專案快速搭建,另外還可以無配置整合第三方框架;
可完全不使用xml配置,只使用自動配置和Java Config;
內嵌入Servlet如Tomcat容器,應用可用jar包執行(java -jar);
執行中應用狀態的監控.
9、Spring Cloud 有了解多少?
Spring Cloud 作為最新最火的微服務的翹楚,就是微服務的一個全家桶。眾多產品開箱即用。就是微服務開發的腳手架
10、Spring Bean 的生命週期
略
11、HashMap 和 hashTable 區別?
參見我的另外一篇博文:HashMap原理
12、Object 的 hashcode 方法重寫了,equals 方法要不要改?
參考我上面貼出的一篇部落格,裡面有說明
13、Hashmap 執行緒不安全的出現場景
參考上一篇博文
14、線上服務 CPU 很高該怎麼做?有哪些措施可以找到問題
使用top命令檢視資源佔用情況
定位問題執行緒,必要時候可以使用jstack 檢視棧
限流
15、JDK 中有哪幾個執行緒池?順帶把執行緒池講了個遍
參考:JDK中執行緒池相關
16、SQL 優化的常見方法有哪些
推薦你到另外一篇博文:sql語句優化的13中方法
我認為“如何寫出統一SQL語句”這一點特別重要,所以我認為common元件很有必要
8個SQL語句常用優化技巧
17、SQL 索引的順序,欄位的順序
略
18、檢視 SQL 是不是使用了索引?(有什麼工具)
檢視執行計劃EXPLAIN ,可以檢視索引是否被命中
19、TCP 和 UDP 的區別?TCP 資料傳輸過程中怎麼做到可靠的?
TCP
缺點:
[1] 三次握手四次揮手,傳輸更多包,浪費一些頻寬
[2] 為了進行可靠通訊,雙方都要維持線上,通訊過程中伺服器server可能出現非常大的併發連線,浪費了系統資源,甚至會出現當機
[3] 確認重傳也會浪費一些頻寬,且在不好的網路中,會不斷的斷開和連線,降低了傳輸效率
UDP
優點:
[1] 沒有握手,起步快延時小
[2] 不需要維持雙方線上,server不用維護巨量併發連線,節省了系統資源
[3] 沒有重傳機制,在不影響使用的情況下,能更高效的利用網路頻寬
TCP相比UDP為什麼是可靠的
[1] 確認和重傳機制:建立連線時三次握手同步雙方的“序列號 + 確認號 + 視窗大小資訊”,是確認重傳、流控的基礎。傳輸過程中,如果Checksum校驗失敗、丟包或延時,傳送端重傳
[2] 資料排序:TCP有專門的序列號SN欄位,可提供資料re-order
[3] 流量控制:視窗和計時器的使用。TCP視窗中會指明雙方能夠傳送接收的最大資料量
[4] 擁塞控制:這個比較複雜,這裡不做介紹
20、說下你知道的排序演算法吧
氣泡排序,選擇排序,插入排序,歸併排序,堆排序,快速排序。雖然有這麼多,但是你真的都熟悉嗎?建議只回答你最熟悉的幾種
21、查詢一個無序陣列的中位數?
方法一:排序好,取出中間的值,就很好處理了(基數很好取,如果是偶數,那就取出中間的兩個數然後/2即可)排序的時間複雜度最好情況下是O(nlogn),空間複雜度O(1)
方法二:由於我們的目標是找到中位數,不需要把每一個數都排好序,因此還有優化的空間。除了排序以外,我們還可以用快排中的Partition思想。
首先,隨機選取一個數作為分類的標準,比它小的都放在它左邊,比它大的都放在它右邊。
如果這個數的下標剛好是n/2 ,那麼這個數就是中位數;
如果這個數的下標小於n/2,說明中位數在它的右邊;
如果這個數的下標大於n/2,說明中位數在它的左邊
這是一個典型的遞迴過程~(程式碼略,但是效率明顯高於方法一)
22、你有什麼問題想問我的嗎?
略
總結
螞蟻金服的一面問題總體上還算比較簡單的,但想回答得讓面試官眼前一亮,還是需要些積累的。
知識交流
若群二維碼失效,請加微訊號(或者掃描下方二維碼):fsx641385712。
並且備註:“java入群” 字樣,會手動邀請入群
相關文章
- 9.9螞蟻金服二三輪面試面試
- 金三銀四:螞蟻金服JAVA開發面試題及答案之一面(持續更新)Java面試題
- 螞蟻金服面試經歷-前期準備面試
- 記錄一次螞蟻金服前端電話面試前端面試
- 速來圍觀老田的螞蟻金服Java面試經歷!Java面試
- 螞蟻金服面試經歷-臨場發揮面試
- 螞蟻金服的一次面試經歷分享!(一面、二面)面試
- 阿里最全面試116題:阿里天貓、螞蟻金服、阿里巴巴面試題含答案阿里面試題
- 阿里螞蟻金服 java崗最新618面試586題,93%會做,你也能面試阿里P8阿里Java面試
- 螞蟻金服開源自動化測試框架 SOFAACTS框架
- 螞蟻轉崗面試之路面試
- 阿里金服最全java面試題及答案阿里Java面試題
- 招聘貼:螞蟻金服招Java研發Java
- 分享我的優質面經,螞蟻金服社招三面面經分享,已拿offer
- (螞蟻金服mPaaS)統一儲存
- 螞蟻金服面出血!最新螞蟻4面(Java):CAP+資料強一致性+Lock鎖+CMS+Tomcat+RedisJavaTomcatRedis
- 2019年螞蟻金服、頭條、拼多多的面試總結(乾貨獻上)面試
- 2018年螞蟻金服前端一面總結(校招)前端
- 藍橋杯 試題 歷屆試題 螞蟻感冒
- 迎戰2021年春招,面試螞蟻金服,京東,騰訊等六家大廠的面試經驗分享!(附300多道面試真題)面試
- 各個大廠面經合集,阿里、騰訊、螞蟻金服Java技術面試及經驗總結(文末分享答案)阿里Java面試
- 3.30螞蟻筆試筆試
- 螞蟻金服 Service Mesh 深度實踐
- 螞蟻金服 Service Mesh 實踐探索
- 螞蟻金服RPC框架結構分析RPC框架
- 分享2019年螞蟻金服面經(已拿Offer)!附答案!!
- 螞蟻、位元組、滴滴面試經歷總結面試
- Java面試題(一)Java面試題
- 移動測試架構演進 | 螞蟻金服自動化用例管理探索架構
- 面試多次被拒,‘兩個月’61天,我收到了螞蟻金服P7級的offer面試
- 【高併發】關於執行緒池,螞蟻金服面試官問了我這些內容!!執行緒面試
- 招聘貼:螞蟻金服招Java研發及前端開發Java前端
- 一文了解螞蟻金服今年 KubeCon 全部重磅分享
- 招聘貼:螞蟻金服招前端開發前端
- 【北京】Golang技術專家--螞蟻金服Golang
- 螞蟻金服6面,95%Java開發者已收藏的十大開源庫Java
- 銀十螞蟻Java崗3面面經分享(MySQL+RabbitMQ+Spring Boot)JavaMySqlMQSpring Boot
- 我是如何在天貓、螞蟻金服、百度等大廠面試中被拒的 | 掘金技術徵文面試