那時爲了金三銀四,我所整理的java面試題彙總

image
今天給你們分享下我整理的Java架構面試專題及答案,其中大部分都是面試過程當中的面試題,能夠對照這查漏補缺,固然了,這裏所列的確定不可能覆蓋所有

JUC/併發相關

  1. ThreadLocal用過麼,原理是什麼,用的時候要注意什麼
  2. Synchronized和Lock的區別
  3. synchronized 的原理,什麼是自旋鎖,偏向鎖,輕量級鎖,什麼叫可重入鎖,什麼叫公平鎖和非公平鎖
  4. concurrenthashmap具體實現及其原理,jdk8下的改版
  5. 用過哪些原子類,他們的參數以及原理是什麼
  6. cas是什麼,他會產生什麼問題(ABA問題的解決,如加入修改次數、版本號)
  7. 若是讓你實現一個併發安全的鏈表,你會怎麼作
  8. 簡述ConcurrentLinkedQueue和LinkedBlockingQueue的用處和不一樣之處
  9. 簡述AQS的實現原理
  10. countdowlatch和cyclicbarrier的用法,以及相互之間的差異?
  11. concurrent包中使用過哪些類?分別說說使用在什麼場景?爲何要使用?
  12. LockSupport工具
  13. Condition接口及其實現原理
  14. Fork/Join框架的理解
  15. jdk8的parallelStream的理解
  16. 分段鎖的原理,鎖力度減少的思考

Spring

  1. Spring AOP與IOC的實現原理
  2. Spring的beanFactory和factoryBean的區別
  3. 爲何CGlib方式能夠對接口實現代理?
  4. RMI與代理模式
  5. Spring的事務隔離級別,實現原理
  6. 對Spring的理解,非單例注入的原理?它的生命週期?循環注入的原理,aop的實現原理,說說aop中的幾個術語,它們是怎麼相互工做的?
  7. Mybatis的底層實現原理
  8. MVC框架原理,他們都是怎麼作url路由的
  9. spring boot特性,優點,適用場景等
  10. quartz和timer對比
  11. spring的controller是單例仍是多例,怎麼保證併發的安全

分佈式相關

  1. Dubbo的底層實現原理和機制
  2. 描述一個服務從發佈到被消費的詳細過程
  3. 分佈式系統怎麼作服務治理
  4. 接口的冪等性的概念
  5. 消息中間件如何解決消息丟失問題
  6. Dubbo的服務請求失敗怎麼處理
  7. 重連機制會不會形成錯誤
  8. 對分佈式事務的理解
  9. 如何實現負載均衡,有哪些算法能夠實現?
  10. Zookeeper的用途,選舉的原理是什麼?
  11. 數據的垂直拆分水平拆分。
  12. zookeeper原理和適用場景
  13. zookeeper watch機制
  14. redis/zk節點宕機如何處理
  15. 分佈式集羣下如何作到惟一序列號
  16. 如何作一個分佈式鎖
  17. 用過哪些MQ,怎麼用的,和其餘mq比較有什麼優缺點,MQ的鏈接是線程安全的嗎
  18. MQ系統的數據如何保證不丟失
  19. 列舉出你能想到的數據庫分庫分表策略;分庫分表後,如何解決全表查詢的問題。

算法和數據結構以及設計模式

  1. 海量url去重類問題(布隆過濾器)
  2. 數組和鏈表數據結構描述,各自的時間複雜度
  3. 二叉樹遍歷
  4. 快速排序
  5. BTree相關的操做
  6. 在工做中遇到過哪些設計模式,是如何應用的
  7. hash算法的有哪幾種,優缺點,使用場景
  8. 什麼是一致性hash
  9. paxos算法
  10. 在裝飾器模式和代理模式之間,你如何抉擇,請結合自身實際狀況聊聊
  11. 代碼重構的步驟和緣由,若是理解重構到模式?

數據庫

  1. MySQL InnoDB存儲的文件結構
  2. 索引樹是如何維護的?
  3. 數據庫自增主鍵可能的問題
  4. MySQL的幾種優化
  5. mysql索引爲何使用B+樹
  6. 數據庫鎖表的相關處理
  7. 索引失效場景
  8. 高併發下如何作到安全的修改同一行數據,樂觀鎖和悲觀鎖是什麼,INNODB的行級鎖有哪2種,解釋其含義
  9. 數據庫會死鎖嗎,舉一個死鎖的例子,mysql怎麼解決死鎖

Redis&緩存相關

  1. Redis的併發競爭問題如何解決了解Redis事務的CAS操做嗎
  2. 緩存機器增刪如何對系統影響最小,一致性哈希的實現
  3. Redis持久化的幾種方式,優缺點是什麼,怎麼實現的
  4. Redis的緩存失效策略
  5. 緩存穿透的解決辦法
  6. redis集羣,高可用,原理
  7. mySQL裏有2000w數據,redis中只存20w的數據,如何保證redis中的數據都是熱點數據
  8. 用Redis和任意語言實現一段惡意登陸保護的代碼,限制1小時內每用戶Id最多隻能登陸5次
  9. redis的數據淘汰策略

網絡相關

  1. http1.0和http1.1有什麼區別
  2. TCP/IP協議
  3. TCP三次握手和四次揮手的流程,爲何斷開鏈接要4次,若是握手只有兩次,會出現什麼
  4. TIME_WAIT和CLOSE_WAIT的區別
  5. 說說你知道的幾種HTTP響應碼
  6. 當你用瀏覽器打開一個連接的時候,計算機作了哪些工做步驟
  7. TCP/IP如何保證可靠性,數據包有哪些數據組成
  8. 長鏈接與短鏈接
  9. Http請求get和post的區別以及數據包格式
  10. 簡述tcp創建鏈接3次握手,和斷開鏈接4次握手的過程;關閉鏈接時,出現TIMEWAIT過可能是由什麼緣由引發,是出如今主動斷開方仍是被動斷開方

本文到此結束,喜歡的朋友幫忙點點贊和關注,感謝!

相關文章
相關標籤/搜索