2019BATJ面試題匯總詳解:MyBatis+MySQL+Spring+Redis+多線程
這裡為大家分享一些面試的一手資料,供大家迎接接下來的金三銀四跳槽季
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)
解釋AOP
Aspect 切面
在Spring AOP 中,關注點和橫切關注的區別是什麼?
什麼是引入?什麼是目標對象?什麼是代理?
有幾種不同類型的自動代理?
什麼是織入。什麼是織入應用的不同點?
解釋基於XML Schema方式的切面實現
解釋基於註解的切面實現
Spring 的MVC
什麼是Spring的MVC框架?
DispatcherServlet
WebApplicationContext
什麼是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內存模型
什麼是樂觀鎖和悲觀鎖
高並發、任務執行時間短的業務怎樣使用線程池?並發不高、任務執行時間長的業務怎樣使用線程池?並發高、業務執行時間長的業務怎樣使用線程池?
沒答案?怎麼可能,光給面試題不給答案不是我的風格。這裡面的面試題也只是鳳毛麟角,還有答案的話會極大的增加文章的篇幅,減少文章的可讀性。
最後
最後就是面試題及答案的獲取方式,點贊+關注+私信『面試』即可獲取。針對於上面的面試題我總結出了互聯網公司java程序員面試涉及到的絕大部分面試題及答案做成了文檔和架構視頻資料免費分享給大家(包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分散式、高並發等架構技術資料),希望能幫助到您面試前的複習且找到一個好的工作,也節省大家在網上搜索資料的時間來學習
推薦閱讀: