今天給你們分享下我整理的Java架構面試專題及答案,其中大部分都是面試過程當中的面試題,能夠對照這查漏補缺,固然了,這裏所列的確定不可能覆蓋所有
JUC/併發相關
- ThreadLocal用過麼,原理是什麼,用的時候要注意什麼
- Synchronized和Lock的區別
- synchronized 的原理,什麼是自旋鎖,偏向鎖,輕量級鎖,什麼叫可重入鎖,什麼叫公平鎖和非公平鎖
- concurrenthashmap具體實現及其原理,jdk8下的改版
- 用過哪些原子類,他們的參數以及原理是什麼
- cas是什麼,他會產生什麼問題(ABA問題的解決,如加入修改次數、版本號)
- 若是讓你實現一個併發安全的鏈表,你會怎麼作
- 簡述ConcurrentLinkedQueue和LinkedBlockingQueue的用處和不一樣之處
- 簡述AQS的實現原理
- countdowlatch和cyclicbarrier的用法,以及相互之間的差異?
- concurrent包中使用過哪些類?分別說說使用在什麼場景?爲何要使用?
- LockSupport工具
- Condition接口及其實現原理
- Fork/Join框架的理解
- jdk8的parallelStream的理解
- 分段鎖的原理,鎖力度減少的思考
Spring
- Spring AOP與IOC的實現原理
- Spring的beanFactory和factoryBean的區別
- 爲何CGlib方式能夠對接口實現代理?
- RMI與代理模式
- Spring的事務隔離級別,實現原理
- 對Spring的理解,非單例注入的原理?它的生命週期?循環注入的原理,aop的實現原理,說說aop中的幾個術語,它們是怎麼相互工做的?
- Mybatis的底層實現原理
- MVC框架原理,他們都是怎麼作url路由的
- spring boot特性,優點,適用場景等
- quartz和timer對比
- spring的controller是單例仍是多例,怎麼保證併發的安全
分佈式相關
- Dubbo的底層實現原理和機制
- 描述一個服務從發佈到被消費的詳細過程
- 分佈式系統怎麼作服務治理
- 接口的冪等性的概念
- 消息中間件如何解決消息丟失問題
- Dubbo的服務請求失敗怎麼處理
- 重連機制會不會形成錯誤
- 對分佈式事務的理解
- 如何實現負載均衡,有哪些算法能夠實現?
- Zookeeper的用途,選舉的原理是什麼?
- 數據的垂直拆分水平拆分。
- zookeeper原理和適用場景
- zookeeper watch機制
- redis/zk節點宕機如何處理
- 分佈式集羣下如何作到惟一序列號
- 如何作一個分佈式鎖
- 用過哪些MQ,怎麼用的,和其餘mq比較有什麼優缺點,MQ的鏈接是線程安全的嗎
- MQ系統的數據如何保證不丟失
- 列舉出你能想到的數據庫分庫分表策略;分庫分表後,如何解決全表查詢的問題。
算法和數據結構以及設計模式
- 海量url去重類問題(布隆過濾器)
- 數組和鏈表數據結構描述,各自的時間複雜度
- 二叉樹遍歷
- 快速排序
- BTree相關的操做
- 在工做中遇到過哪些設計模式,是如何應用的
- hash算法的有哪幾種,優缺點,使用場景
- 什麼是一致性hash
- paxos算法
- 在裝飾器模式和代理模式之間,你如何抉擇,請結合自身實際狀況聊聊
- 代碼重構的步驟和緣由,若是理解重構到模式?
數據庫
- MySQL InnoDB存儲的文件結構
- 索引樹是如何維護的?
- 數據庫自增主鍵可能的問題
- MySQL的幾種優化
- mysql索引爲何使用B+樹
- 數據庫鎖表的相關處理
- 索引失效場景
- 高併發下如何作到安全的修改同一行數據,樂觀鎖和悲觀鎖是什麼,INNODB的行級鎖有哪2種,解釋其含義
- 數據庫會死鎖嗎,舉一個死鎖的例子,mysql怎麼解決死鎖
Redis&緩存相關
- Redis的併發競爭問題如何解決了解Redis事務的CAS操做嗎
- 緩存機器增刪如何對系統影響最小,一致性哈希的實現
- Redis持久化的幾種方式,優缺點是什麼,怎麼實現的
- Redis的緩存失效策略
- 緩存穿透的解決辦法
- redis集羣,高可用,原理
- mySQL裏有2000w數據,redis中只存20w的數據,如何保證redis中的數據都是熱點數據
- 用Redis和任意語言實現一段惡意登陸保護的代碼,限制1小時內每用戶Id最多隻能登陸5次
- redis的數據淘汰策略
網絡相關
- http1.0和http1.1有什麼區別
- TCP/IP協議
- TCP三次握手和四次揮手的流程,爲何斷開鏈接要4次,若是握手只有兩次,會出現什麼
- TIME_WAIT和CLOSE_WAIT的區別
- 說說你知道的幾種HTTP響應碼
- 當你用瀏覽器打開一個連接的時候,計算機作了哪些工做步驟
- TCP/IP如何保證可靠性,數據包有哪些數據組成
- 長鏈接與短鏈接
- Http請求get和post的區別以及數據包格式
- 簡述tcp創建鏈接3次握手,和斷開鏈接4次握手的過程;關閉鏈接時,出現TIMEWAIT過可能是由什麼緣由引發,是出如今主動斷開方仍是被動斷開方
本文到此結束,喜歡的朋友幫忙點點贊和關注,感謝!