詳解Java架構進階面試題:MyBatis+MySQL+Spring+Redis+多線程

詳解Java架構進階面試題:MyBatis+MySQL+Spring+Redis+多線程

這裡為大家分享一些面試的一手資料,供大家迎接接下來的金三銀四跳槽季

給大家推薦兩篇文章,詳細的面試題以及答案

《 》

裡面有關於Java架構師知識要點的詳細講解,有用的可以收藏

《 》

Spring

詳解Java架構進階面試題:MyBatis+MySQL+Spring+Redis+多線程

Spring 概述

  1. 什麼是spring?
  2. 使用Spring框架的好處是什麼?
  3. Spring由哪些模塊組成?
  4. 解釋AOP模塊
  5. Spring配置文件
  6. 什麼是Spring IOC 容器?

依賴注入

  1. 什麼是Spring的依賴注入?
  2. 有哪些不同類型的IOC(依賴注入)方式?
  3. 哪種依賴注入方式你建議使用,構造器注入,還是 Setter方法注入?

Spring Beans

  1. 什麼是Spring beans?一個 Spring Bean 定義 包含什麼?
  2. 如何給Spring 容器提供配置元數據?
  3. 你怎樣定義類的作用域?
  4. 解釋Spring支持的幾種bean的作用域
  5. 解釋Spring框架中bean的生命週期
  6. 在 Spring中如何注入一個java集合?
  7. 什麼是bean裝配?什麼是bean的自動裝配?
  8. 解釋不同方式的自動裝配

Spring註解

  1. 什麼是基於Java的Spring註解配置? 給一些註解的例子
  2. 什麼是基於註解的容器配置?
  3. 怎樣開啟註解裝配?
  4. @Required 註解、@Autowired 註解、@Qualifier 註解

Spring數據訪問

  1. 在Spring框架中如何更有效地使用JDBC?
  2. JdbcTemplate
  3. 使用Spring通過什麼方式訪問Hibernate?
  4. 如何通過HibernateDaoSupport將Spring和Hibernate結合起來?
  5. Spring框架的事務管理有哪些優點?
  6. 你更傾向用那種事務管理類型?

Spring面向切面編程(AOP)

  1. 解釋AOP
  2. Aspect 切面
  3. 在Spring AOP 中,關注點和橫切關注的區別是什麼?
  4. 什麼是引入?什麼是目標對象?什麼是代理?
  5. 有幾種不同類型的自動代理?
  6. 什麼是織入。什麼是織入應用的不同點?
  7. 解釋基於XML Schema方式的切面實現
  8. 解釋基於註解的切面實現

Spring 的MVC

  1. 什麼是Spring的MVC框架?
  2. DispatcherServlet
  3. WebApplicationContext
  4. 什麼是Spring MVC框架的控制器?
  5. @Controller 註解、@RequestMapping 註解

Redis

詳解Java架構進階面試題:MyBatis+MySQL+Spring+Redis+多線程

  1. 什麼是Redis?
  2. Redis相比memcached有哪些優勢?
  3. Redis支持哪幾種數據類型?
  4. Redis主要消耗什麼物理資源?
  5. Redis的全稱是什麼?
  6. Redis有哪幾種數據淘汰策略?
  7. Redis集群方案應該怎麼做?都有哪些方案?
  8. Redis有哪些適合的場景?
  9. Redis支持的Java客戶端都有哪些?官方推薦用哪個?
  10. Redis回收進程如何工作的?
  11. 你知道有哪些Redis分區實現方案?
  12. Redis分區有什麼缺點?
  13. Redis持久化數據和緩存怎麼做擴容?
  14. 分佈式Redis是前期做還是後期規模上來了再做好?為什麼?
  15. Redis與其他key-value存儲有什麼不同?
  16. Redis的內存佔用情況怎麼樣?
  17. Redis常見性能問題和解決方案?
  18. Redis提供了哪幾種持久化方式?
  19. 如何選擇合適的持久化方式?
  20. 修改配置不重啟Redis會實時生效嗎?

MyBatis

詳解Java架構進階面試題:MyBatis+MySQL+Spring+Redis+多線程

  1. #{}和${}的區別是什麼?
  2. 通常一個Xml映射文件,都會寫一個Dao接口與之對應,請問,這個Dao接口的工作原理是什麼?Dao接口裡的方法,參數不同時,方法能重載嗎?
  3. Mybatis是如何進行分頁的?分頁插件的原理是什麼?
  4. Mybatis是如何將sql執行結果封裝為目標對象並返回的?都有哪些映射形式?
  5. Xml映射文件中,除了常見的select|insert|update|delete標籤之外,還有哪些標籤?
  6. 簡述Mybatis的插件運行原理,以及如何編寫一個插件
  7. 一級、二級緩存
  8. Mybatis是否支持延遲加載?如果支持,它的實現原理是什麼?
  9. Mybatis映射文件中,如果A標籤通過include引用了B標籤的內容,請問,B標籤能否定義在A標籤的後面,還是說必須定義在A標籤的前面?
  10. 簡述Mybatis的Xml映射文件和Mybatis內部數據結構之間的映射關係?

MySQL

詳解Java架構進階面試題:MyBatis+MySQL+Spring+Redis+多線程

  1. 一張表,裡面有ID自增主鍵,當insert了17條記錄之後,刪除了第15,16,17條記錄,再把Mysql重啟,再insert一條記錄,這條記錄的ID是18還是15 ?
  2. Mysql的技術特點是什麼?
  3. Heap表是什麼?
  4. Mysql服務器默認端口是什麼?
  5. 如何區分FLOAT和DOUBLE?
  6. 區分CHAR_LENGTH和LENGTH?
  7. 請簡潔描述Mysql中InnoDB支持的四種事務隔離級別名稱,以及逐級之間的區別?
  8. 在Mysql中ENUM的用法是什麼?
  9. 如何定義REGEXP?
  10. CHAR和VARCHAR的區別?
  11. Mysql查詢是否區分大小寫?
  12. Mysql中有哪些不同的表格?
  13. 什麼樣的對象可以使用CREATE語句創建?
  14. 什麼是通用SQL函數?
  15. MYSQL支持事務嗎?
  16. mysql裡記錄貨幣用什麼字段類型好
  17. Mysql中有哪幾種鎖?
  18. MYSQL數據庫服務器性能分析的方法命令有哪些?
詳解Java架構進階面試題:MyBatis+MySQL+Spring+Redis+多線程

多線程

  1. 多線程有什麼用?
  2. 創建線程的方式
  3. start()方法和run()方法的區別
  4. Runnable接口和Callable接口的區別
  5. CyclicBarrier和CountDownLatch的區別
  6. volatile關鍵字的作用
  7. 什麼是線程安全
  8. Java中如何獲取到線程dump文件
  9. 怎麼檢測一個線程是否持有對象監視器
  10. ConcurrentHashMap的併發度是什麼
  11. Linux環境下如何查找哪個線程使用CPU最長
  12. Java編程寫一個會導致死鎖的程序
  13. 什麼是Java內存模型
  14. 什麼是樂觀鎖和悲觀鎖
  15. 高併發、任務執行時間短的業務怎樣使用線程池?併發不高、任務執行時間長的業務怎樣使用線程池?併發高、業務執行時間長的業務怎樣使用線程池?

沒答案?怎麼可能,光給面試題不給答案不是我的風格。這裡面的面試題也只是鳳毛麟角,還有答案的話會極大的

增加文章的篇幅,減少文章的可讀性。

最後

最後就是面試題及答案的獲取方式,也為大家提供一個學習交流的平臺:805685193。有免費分享的視頻,還有思維導圖,主要分享分佈式架構、高可擴展、高性能、高併發、性能優化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分佈式項目實戰學習架構師視頻。


分享到:


相關文章: