1. 程式人生 > >五面阿里P6:Java開發面試題及答案

五面阿里P6:Java開發面試題及答案

一面(電話)

說說對JVM的理解
treemap和hashmap有什麼區別?
Java多執行緒的的5大狀態圖流轉
mysql主鍵和唯一索引的區別
說說最近的專案
如何實現session共享,用redis如何實現
快取擊穿的概念和解決方案
說說微服務,微服務之間如何管理

二面(現場)

java nio常?用的三個類
java裡面的同步鎖瞭解嗎?Countdownlauch和Cylicbarrior的區別,分別在什麼應用場景下使用
JVM的記憶體結構?哪些是共享的,哪些是執行緒私有的?Java虛擬機器棧裡面存放的是什麼?
如何自己實現一個執行緒池讓別人使用?
哪些情況會觸發Java的類載入?
手寫程式碼:快速排序、單例模式,化一個工廠和裝飾者模式的UML類圖
AOP的實現原理?
如何優化一個慢查詢
Java鎖有哪幾種?可重入鎖和不可重入鎖的區別?
Lock和synchronized的區別?它們都是可重入鎖嗎?哪個效率更高?
手寫SpringMVC DispatcherServlet的大致實現

三面(現場)

平時的專案併發經驗有哪些?
redis資料結構
redis執行緒模型
redis資料淘汰機制
讀過redis原始碼嗎?
mysql實現事務的原理(MVCC)
MQ底層實現原理
資料庫事務acid,事務操作,怎麼加鎖,分散式系統鎖
什麼情況容易發生雪崩?如何來解決

四面 :技術面

主要是併發想的專案介紹
技術含量較高的專案,從架構設計到部署問了一遍
高併發架構的設計思路

五面 :HR面

主要問手裡的offer?
聊人生和未來的規劃?
以及相關的薪資?