這裡為大家分享一些面試的一手資料,供大家迎接接下來的金三銀四跳槽季
給大家推薦兩篇文章,詳細的面試題以及答案
《 》
裡面有關於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)
- 解釋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內存模型
- 什麼是樂觀鎖和悲觀鎖
- 高併發、任務執行時間短的業務怎樣使用線程池?併發不高、任務執行時間長的業務怎樣使用線程池?併發高、業務執行時間長的業務怎樣使用線程池?
沒答案?怎麼可能,光給面試題不給答案不是我的風格。這裡面的面試題也只是鳳毛麟角,還有答案的話會極大的
增加文章的篇幅,減少文章的可讀性。最後
最後就是面試題及答案的獲取方式,也為大家提供一個學習交流的平臺:805685193。有免費分享的視頻,還有思維導圖,主要分享分佈式架構、高可擴展、高性能、高併發、性能優化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分佈式項目實戰學習架構師視頻。
閱讀更多 JavaSpring高級進階 的文章