欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring面試題50道,應該至少答對30個(附答案)

  發(fā)布時間:2020-06-16 17:00:13   作者:Java小咖秀   我要評論
這篇文章主要介紹了Spring面試題50道,應該至少答對30個(附答案),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

作為一個Java程序員,Spring沒得商量,對我們是必須會的,而且很重要,幾乎我們大多項目都用得它,作為一個優(yōu)質(zhì)且生態(tài)系統(tǒng)非常全面的框架,不僅在使用上很給力,源碼也有很大的學習價值。小編給大家整理了50道面試題,或者說50個知識點,可以先收藏起來了😊。

1.Spring框架?
Spring框架是由于軟件開發(fā)的復雜性而創(chuàng)建的,Spring使用的是基本的JavaBean來完成以前只可能由EJB完成的事。從簡單性、可測性和松耦合性角度而言,絕大部分Java應用都可以用Spring。

2.Spring的整體架構?

大約分為20個模塊。

3.Spring可以做什么?

4.Spring的優(yōu)點?缺點?
優(yōu)點:

  • Spring屬于低侵入設計。
  • IOC將對象之間的依賴關系交給Spring,降低組件之間的耦合,實現(xiàn)各個層之間的解耦,讓我們更專注于業(yè)務邏輯。
  • 提供面向切面編程。
  • 對各種主流插件提供很好的集成支持。
  • 對事務支持的很好,只要配置即可,無須手動控制。

缺點:

  • 依賴反射,影響性能。

5.你能說幾個Spring5的新特性嗎?

  • spring5整個框架基于java8
  • 支持http/2
  • Spring Web MVC支持最新API
  • Spring WebFlux 響應式編程
  • 支持Kotlin函數(shù)式編程

6.IOC?
負責創(chuàng)建對象、管理對象(通過依賴注入)、整合對象、配置對象以及管理這些對象的生命周期。

7.什么是依賴注入?
依賴注入是Spring實現(xiàn)IoC的一種重要手段,將對象間的依賴關系的控制權從開發(fā)人員手里轉移到容器。

8.IOC注入哪幾種方式?
1.構造器注入
2.setter注入
3.接口注入(我們幾乎不用)

9.IOC優(yōu)點?缺點?
優(yōu)點:

  • 組件之間的解耦,提高程序可維護性、靈活性。

缺點:

  • 創(chuàng)建對象步驟復雜,有一定學習成本。
  • 利用反射創(chuàng)建對象,效率上有損。(對于代碼的靈活性和可維護性來看,Spring對于我們的開發(fā)帶來了很大的便利,這點損耗不算什么哦)

10.bean的生命周期?
1.Spring 對bean進行實例化。
2.Spring將值和bean的引用注入到 bean對應的屬性中。
3.如果bean實現(xiàn)了BeanNameAware接口,Spring將bean的ID傳遞給setBeanName()方法。
4.如果bean實現(xiàn)了BeanFactoryAware接口, Spring將調(diào)用setBeanFactory()方法,將 bean所在的應用引用傳入進來。
5.如果bean實現(xiàn)了ApplicationContextAware接口,Spring將調(diào)用setApplicationContext()方法,將bean所在的應用引用傳入進來。
6.如果bean實現(xiàn)了BeanPostProcessor 接口,Spring將調(diào)用他們的post-ProcessBeforeInitalization()方法。
7.如果bean實現(xiàn)了InitializingBean接口,Spring將調(diào)用他們的after-PropertiesSet()方法,類似地,如果bean使用init-method聲明了初始化方法,該方法也會被調(diào)用。
8.如果bean實現(xiàn)了BeanPostProcessor接口,Spring將調(diào)用它們的post-ProcessAfterInitialization()方法。
9.此時, bean已經(jīng)準備就緒,可以被應用程序使用了,他們將一直駐留在應用上下文中,直到該應用被銷毀。
10.如果bean實現(xiàn)了DisposableBean接口,Spring將調(diào)用它的destory()接口方法,同樣,如果bean使用destroy-method聲明了銷毀方法,該方法也會被調(diào)用。

11.Spring有幾種配置方式?

  • 基于xml
  • 基于注解
  • 基于Java
     

12.Spring中的bean有幾種scope?

  • singleton: 單例,每一個bean只創(chuàng)建一個對象實例。
  • prototype,原型,每次對該bean請求調(diào)用都會生成各自的實例。
  • request,請求,針對每次HTTP請求都會生成一個新的bean。表示在一次 HTTP 請求內(nèi)有效。
  • session,在一個http session中,一個bean定義對應一個bean實例。
  • global session:在一個全局http session中,一個bean定義對應一個bean實例
     

13.什么是AOP(面向切面編程)?
在軟件業(yè),AOP為Aspect Oriented Programming的縮寫,意為:面向切面編程,通過預編譯方式和運行期間動態(tài)代理實現(xiàn)程序功能的統(tǒng)一維護的一種技術。

14.切面有幾種類型的通知?分別是?
前置通知(Before): 目標方法被調(diào)用之前調(diào)用通知功能。
后置通知(After): 目標方法完成之后調(diào)用通。
返回通知(After-returning): 目標方法成功執(zhí)行之后調(diào)用通知。
異常通知(After-throwing): 目標方法拋出異常后調(diào)用通知。
環(huán)繞通知(Around):  在被通知的方法調(diào)用之前和調(diào)用之后執(zhí)行自定義的行為。

15.什么是連接點 (Join point)?
連接點是在應用執(zhí)行過程中能夠插入切面的一個點。這個點可以是調(diào)用方法時、拋出異常時、甚至修改一個字段時。

16.什么是切點(Pointcut)?
切點的定義會匹配通知所要織入的一個或多個連接點。我們通常使用明確的類和方法名稱,或是利用正則表達式定義所匹配的類和方法名稱來指定這些切點。有些AOP框架允許我們創(chuàng)建動態(tài)的切點,可以根據(jù)運行時的決策(比如方法的參數(shù)值)來決定是否應用通知。

17.什么是切面(Aspect)?
切面是通知和切點的結合。通知和切點共同定義了切面的全部內(nèi)容。

18.織入(Weaving)?
織入是把切面應用到目標對象并創(chuàng)建新的代理對象的過程。切面在指定的連接點被織入到目標對象中。

19.引入(Introduction)?
引入允許我們向現(xiàn)有的類添加新方法或屬性。

20.在目標對象的生命周期里有多個點可以進行織入?

  • 編譯期:切面在目標類編譯時被織入。AspectJ的織入編譯器就是以這種方式織入切面的。
  • 類加載期:切面在目標類加載到JVM時被織入。它可以在目標類被引入應用之前增強該目標類的字節(jié)碼。AspectJ 5的加載時織入(load-time weaving,LTW)就支持以這種方式織入切面。
  • 運行期:切面在應用運行的某個時刻被織入。一般情況下,在織入切面時,AOP容器會為目標對象動態(tài)地創(chuàng)建一個代理對象。Spring AOP就是以這種方式織入切面的。

21.AOP動態(tài)代理策略?

  • 如果目標對象實現(xiàn)了接口,默認采用JDK 動態(tài)代理??梢詮娭妻D為CgLib實現(xiàn)AOP。
  • 如果沒有實現(xiàn)接口,采用CgLib進行動態(tài)代理。
     

22.什么是MVC框架?
MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設計典范,用一種業(yè)務邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務邏輯聚集到一個部件里面,在改進和個性化定制界面及用戶交互的同時,不需要重新編寫業(yè)務邏輯。
MVC被獨特的發(fā)展起來用于映射傳統(tǒng)的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結構中。

23.什么是SpringMVC?
SpringMVC是Spring框架的一個模塊。是一個基于MVC的框架。

24.SpringMVC的核心?
DispatcherServlet

25.SpringMVC的幾個組件?
DispatcherServlet : 前端控制器,也叫中央控制器。相關組件都是它來調(diào)度。
HandlerMapping : 處理器映射器,根據(jù)URL路徑映射到不同的Handler。
HandlerAdapter : 處理器適配器,按照HandlerAdapter的規(guī)則去執(zhí)行Handler。
Handler  : 處理器,由我們自己根據(jù)業(yè)務開發(fā)。
ViewResolver : 視圖解析器,把邏輯視圖解析成具體的視圖。
View : 一個接口,它的實現(xiàn)支持不同的視圖類型(freeMaker,JSP等)

26.SpringMVC工作流程?
1.用戶請求旅程的第一站是DispatcherServlet。
2.收到請求后,DispatcherServlet調(diào)用HandlerMapping,獲取對應的Handler。
3.如果有攔截器一并返回。
4.拿到Handler后,找到HandlerAdapter,通過它來訪問Handler,并執(zhí)行處理器。
5.執(zhí)行Handler的邏輯。
6.Handler會返回一個ModelAndView對象給DispatcherServlet。
7.將獲得到的ModelAndView對象返回給DispatcherServlet。
8.請求ViewResolver解析視圖,根據(jù)邏輯視圖名解析成真正的View。
9.返回View給DispatcherServlet。
10.DispatcherServlet對View進行渲染視圖。
11.DispatcherServlet響應用戶。

27.SpringMVC的優(yōu)點?
1.具有Spring的特性。
2.可以支持多種視圖(jsp,freemaker)等。
3.配置方便。
4.非侵入。
5.分層更清晰,利于團隊開發(fā)的代碼維護,以及可讀性好。
Tips:Jsp目前很少有人用了。

28.單例bean是線程安全的嗎?
不是。具體線程問題需要開發(fā)人員來處理。

29.Spring從哪兩個角度實現(xiàn)自動裝配?
組件掃描(component scanning):Spring會自動發(fā)現(xiàn)應用上下文中所創(chuàng)建的bean。
自動裝配(autowiring):Spring自動滿足bean之間的依賴。

30.自動裝配有幾種方式?分別是?
no -  默認設置,表示沒有自動裝配。
byName : 根據(jù)名稱裝配。
byType : 根據(jù)類型裝配。
constructor : 把與Bean的構造器入?yún)⒕哂邢嗤愋偷钠渌鸅ean自動裝配到Bean構造器的對應入?yún)⒅小?br /> autodetect :先嘗試constructor裝配,失敗再嘗試byType方式。
default:由上級標簽的default-autowire屬性確定。

31.說幾個聲明Bean 的注解?

  • @Component
  • @Service
  • @Repository
  • @Controller
     

32.注入Java集合的標簽?

  • 允許有相同的值。
  • 不允許有相同的值。
  • 鍵和值都只能為String類型。
  • < map > 鍵和值可以是任意類型。

33.「Spring支持的ORM」?

  • Hibernate
  • iBatis
  • JPA (Java Persistence API)
  • TopLink
  • JDO (Java Data Objects)
  • OJB

34.@Repository注解?
Dao 層實現(xiàn)類注解,掃描注冊 bean。

35.@Value注解?
講常量、配置中的變量值、等注入到變量中。

36.@Controller注解?
定義控制器類。

37.聲明一個切面注解是哪個?
@Aspect

38.映射web請求的注解是?
@RequestMapping

39.@ResponseBody注解?
作用是將返回對象通過適當?shù)霓D換器轉成置頂格式,寫進response的body區(qū)。通常用來返回json、xml等。

40.@ResponseBody + @Controller =?
@RestController

41.接收路徑參數(shù)用哪個注解?
@PathVariable

42.@Cacheable注解?
用來標記緩存查詢。

43.清空緩存是哪個注解?
@CacheEvict

44.@Component注解?
泛指組件,不好歸類時,可以用它。

45.「BeanFactory 和 ApplicationContext」區(qū)別?

46.@Qualifier注解?
當創(chuàng)建多個相同類型的 bean 時,并且想要用一個屬性只為它們其中的一個進行裝配,在這種情況下,你可以使用 @Qualifier 注釋和 @Autowired 注釋通過指定哪一個真正的 bean 將會被裝配來消除混亂。

47.事務的注解是?
@Transactional

48.Spring事務實現(xiàn)方式有?
聲明式:聲明式事務也有兩種實現(xiàn)方式。

xml 配置文件的方式。注解方式(在類上添加 @Transaction 注解)。
編碼式:提供編碼的形式管理和維護事務。

49.什么是事務傳播?
事務在嵌套方法調(diào)用中如何傳遞,具體如何傳播,取決于事務傳播行為。

50.Spring事務傳播行為有哪些?

參考:

《Spring in action 4》
《SPRING技術內(nèi)幕》
《Spring源碼深度解析》
《Spring5企業(yè)級開發(fā)實戰(zhàn)》
https://spring.io
百度百科

到此這篇關于Spring面試題50道,應該至少答對30個(附答案)的文章就介紹到這了,更多相關Spring面試題內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持腳本之家!

相關文章

  • SpringMVC常見面試題總結(超詳細回答)

    這篇文章主要介紹了SpringMVC常見面試題總結,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2020-05-27
  • 一文帶你輕松應對Springboot面試小結

    這篇文章主要介紹了一文帶你輕松應對Springboot面試小結,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2020-05-12
  • 2020最新版Spring Cloud面試題

    這篇文章主要介紹了2020最新版Spring Cloud面試題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2020-03-17
  • 2020最新版Spring面試題

    這篇文章主要介紹了2020最新版Spring面試題 ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2020-03-17
  • 2019 最新「Spring 全家桶」高頻面試題(小結)

    這篇文章主要介紹了2019 最新「Spring 全家桶」高頻面試題(小結),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-08-26
  • 27道高頻Spring面試題,你能答對幾個?

    這篇文章主要介紹了27道高頻Spring面試題,你能答對幾個?小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-08-08
  • Java研發(fā)面試99題(含答案):JVM+Spring+MySQL+線程池+鎖

    這篇文章主要介紹了Java研發(fā)面試99題,主要包括了JVM,Spring,MySQL,線程池,鎖等,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-07-16
  • 35道SpringBoot面試題及答案(小結)

    這篇文章主要介紹了35道SpringBoot面試題及答案(小結)的相關資料,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-21
  • 49個Spring經(jīng)典面試題總結(附帶答案)

    這篇文章主要介紹了49個Spring經(jīng)典面試題總結(附帶答案)的相關資料,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-29
  • 騰訊這套SpringMvc面試題你懂多少知識(面試必備)

    本文詳細的介紹了SpringMvc面試題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-28

最新評論