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

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

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

《 》

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

《 》

Spring

Spring 概述

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

依賴注入

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

Spring Beans

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

Spring註解

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

Spring數據訪問

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

Spring面向切面編程(AOP)

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

Spring 的MVC

什麼是Spring的MVC框架?DispatcherServletWebApplicationContext什麼是Spring MVC框架的控制器?@Controller 註解、@RequestMapping 註解

Redis

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

MyBatis

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

MySQL

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

多線程

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

沒答案?怎麼可能,光給面試題不給答案不是我的風格。這裡面的面試題也只是鳳毛麟角,還有答案的話會極大的增加文章的篇幅,減少文章的可讀性。

最後

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