阿里資深專家面試問題收集

java隋七哥發表於2018-08-19

corejava

hashcode相等的兩個物件一定相等嗎?equals呢?反過來相等嗎?

介紹一下集合框架?

hashtable,hashmap底層實現是什麼?hashtable和concurrenthashmap底層實現的區別?

hashmap和treemap的區別?底層資料結構都是什麼?

執行緒池用過嗎?都有什麼引數?底層是如何實現的?

synchronize 和Lock介面的區別是什麼?synchronize什麼情況下是物件鎖?什麼情況下是全域性鎖?為什麼?

ThreadLocal 如何使用的?說出你在專案中使用的例子?底層實現是什麼?

volatile 的工作原理是什麼?

CAS是什麼?如何實現的呢?

請用至少四種寫法?寫單例模式的實現.

JVM

請介紹一下JVM記憶體模型?用過哪些垃圾回收器?

線上頻繁發生full gc如何處理?CPU使用率過高怎麼辦?說出你的思路和處理方法? 3,知道位元組碼嗎?位元組碼都有哪些指令?Integer x=5. int y=5. 比較 x==y都經過哪些步驟?

講講類載入機制?都有哪些類載入器?這些類載入器都載入哪些類檔案?說說你在專案中用到類載入器的例子?

知道osgi嗎?他是如何實現的?

請問你做過哪些JVM方面的優化?使用的什麼方法?達到了什麼效果?

資料庫

使用mysq索引都有哪些規則?索引是什麼資料結構?B+tree和B tree的區別是什麼?

mysql有哪些儲存引擎啊?都有什麼區別?

設計高併發高可用系統時資料庫層面設計該怎麼設計?

資料庫鎖都有哪些?如何實現的的?

資料庫事務都有哪些?

分庫分表

如何設計可以動態擴容縮容的分庫分表方案?

用過哪些分庫分表方案?都有什麼優點和缺點?說一下他的底層如何實現的?

我現在有一個未分庫分表系統A,以後系統需要分庫分表B,請問,線上如何動態的由A切換到B?

分散式事務知道嗎?它是如何實現的?若在通訊過程中,出現網路原因,如何解決?

為什麼要分庫分表?

分散式定址方式都有哪些?知道一致性hash嗎?手寫一下java實現程式碼?

你若用userId取模分片,我要查詢連續時間段裡的資料怎麼辦?

如何解決分庫分表的主鍵問題?有什麼實現方案?

分散式快取

redis和memcached什麼區別?為什麼單執行緒的redis比多執行緒的memcached效率要高?

redis有什麼資料型別?都在哪些場景下使用?

redis主從複製如何實現的?redis的叢集模式如何實現?redis的key是如何定址的?

使用redis如何設計分散式鎖?說一下實現思路?使用zk可以嗎?如何實現?這兩種有什麼區別?

知道redis 的持久化嗎?底層如何實現的?有什麼優點缺點?

redis過期策略都有哪些?LRU演算法知道嗎?寫一下java程式碼實現?

分散式服務框架

說一下dubbo的實現過程?註冊中心掛了可以繼續通訊嗎?

zookeeper原理知道嗎?專案中都用到zookeeper哪些功能?其實現演算法知道嗎?說一下大概原理?

dubbo支援哪些序列化協議?知道hessian的資料結構嗎?PB知道嗎?為啥他的效率最高?

netty知道嗎?netty可以做什麼?NIO,BIO,AIO都是什麼?有什麼區別?

dubbo負載均衡策略和高可用策略都有哪些?動態代理策略都有哪些?

為啥要進行系統拆分?不進行拆分可以嗎?dubbo和thrift什麼區別?

分散式訊息佇列

為什麼使用訊息佇列?訊息佇列有什麼優點和缺點?

如何保證訊息佇列高可用?如何保證訊息不被重複消費?

kafka,activemq,rabbitmq,rocketmq都有什麼優點缺點?

如果讓你設計一個訊息佇列?該如何進行架構設計,說一下你的思路?

分散式搜尋引擎

es的工作 過程是如何實現的,他是如何實現分散式的的?

Es在資料量很大的情況下(數十億),如何提高查詢效率?

Es的查詢是一個怎麼的工作過程?底層的luncence介紹一下?倒排索引知道嗎?es和mongodb有什麼區別?使用場景都有哪些?

高併發高可用架構設計

如何設計一個高併發高可用系統?

如何限流?工作中是怎麼做的?說一下具體實現?

快取如何使用?快取使用不當會造成什麼後果?

如何熔斷?熔斷框架都有哪些?說一下具體原理實現?

如何降級?如何進行系統拆分?如何進行資料庫拆分?

需要免費Java架構學習資料視訊請加扣扣群835544715 群內提供免費的學習指導 架構資料 以及免費的解答 不懂得問題都可以在本群提出來 之後還會有職業生涯規劃以及面試指導


相關文章