輕鬆搞定AOP面試(外加幾個面試題),從Spring熱插件實戰開始

今天有一哥們去面試 ,哥們說本身會ssh
面試官就問了幾個spring的概念性的問題 ,哥們平時只專一於寫代碼,回來後一臉的無奈

本人總結了一些ssh常見的面試題 例舉以下 強調在回答的時候不要光回答概念,要思惟擴散性的講些相關的東西

spring 的優勢?

1.下降了組件之間的耦合性 ,實現了軟件各層之間的解耦
2.可使用容易提供的衆多服務,如事務管理,消息服務等
3.容器提供單例模式支持
4.容器提供了AOP技術,利用它很容易實現如權限攔截,運行期監控等功能
5.容器提供了衆多的輔助類,能加快應用的開發
6.spring對於主流的應用框架提供了集成支持,如hibernate,JPA,Struts等
7.spring屬於低侵入式設計,代碼的污染極低
8.獨立於各類應用服務器
9.spring的DI機制下降了業務對象替換的複雜性
10.Spring的高度開放性,並不強制應用徹底依賴於Spring,開發者能夠自由選擇spring的部分或所有java

Spring AOP相關的幾道面試題

1. 說出Spring的通知類型有哪些?程序員

2. 談談目標對象實現接口與目標對象不實現接口有什麼區別?面試

3. 請描述JDK動態代理和CGLI代理的區別?spring

4. 簡述ProxyFactoryBean的做用是什麼?編程

5. 敘述Spring中的自動代理的原理?服務器

5. 寫出建立代理對象需指定的三要素是什麼?架構

6. 寫出代理的兩種方式分別是什麼?併發

7. 請簡述:什麼是AOP?框架

8. 簡述AOP核心?ssh

9. 請敘述AOP事務的含義?

什麼是DI機制?

依賴注入(Dependecy Injection)和控制反轉(Inversion of Control)是同一個概念,具體的講:當某個角色
須要另一個角色協助的時候,在傳統的程序設計過程當中,一般由調用者來建立被調用者的實例。但在spring中
建立被調用者的工做再也不由調用者來完成,所以稱爲控制反轉。建立被調用者的工做由spring來完成,而後注入調用者
所以也稱爲依賴注入。
spring以動態靈活的方式來管理對象 , 注入的兩種方式,設置注入和構造注入。
設置注入的優勢:直觀,天然
構造注入的優勢:能夠在構造器中決定依賴關係的順序。

什麼是AOP?

  • 面向切面編程(AOP)完善spring的依賴注入(DI),面向切面編程在spring中主要表現爲兩個方面

1.面向切面編程提供聲明式事務管理
2.spring支持用戶自定義的切面

面向切面編程(aop)是對面向對象編程(oop)的補充,
面向對象編程將程序分解成各個層次的對象,面向切面編程將程序運行過程分解成各個切面。
AOP從程序運行角度考慮程序的結構,提取業務處理過程的切面,oop是靜態的抽象,aop是動態的抽象,
是對應用執行過程當中的步驟進行抽象,,從而得到步驟之間的邏輯劃分。

aop框架具備的兩個特徵:

1.各個步驟之間的良好隔離性
2.源代碼無關性

Spring IOC相關的一套面試題(選擇題+簡答題)

1. 下面關於spring描述錯誤的是:( )
A Spring支持可插入的事務管理器,使事務劃分更輕鬆,同時無需處理底層的問題。
B Spring事務管理的通用抽象層還包括JTA策略和一個JDBC DataSource。
C 與JTA或EJB CMT同樣,Spring的事務支持依賴於Java EE環境。
D Spring事務語義經過AOP應用於 POJO,經過XML或Java SE 5註釋進行配置。

2. 下面選項哪一個不是Spring中接口注入的方式?( )
A 接口注入  
B 構造子注入  
C 設值注入  
D 指針注入

3. 下列關於Spring特性中IoC描述錯誤的是:( )
A IoC就是指程序之間的關係由程序代碼直接操控。
B 所謂「控制反轉」,是指控制權由應用代碼轉到外部容器,控制權的轉移,
C IoC將控制建立的職責搬進了框架中;並把它從應用代碼脫離開來
D 當使用Spring的IoC容器時只需指出組件須要的對象,在運行時Spring的IoC容器會根據XML配置數據提供給它。

簡答題:

1. 請簡述Spring的工做機制?

2. 請回答你爲何用Spring的工做機制?

3. 請簡述Spring是什麼?

4. 簡述spring的組成?

5.簡述Spring容器提供了哪些功能?

6. 在Spring中,bean的注入有幾種方式,各是什麼?

7. 請簡述:Spring bean的做用域?

8. 請敘述設值注入的優勢?

9. 請敘述構造注入的優勢?

10. 說出bean工廠建立bean的三種方式?

11. 請寫出bean的生命週期的方法?

12. 請簡述你對IOC的理解?

13. 請回答:IoC最大的好處是什麼?

14. 簡述IoC的類型?

15. Spring中依賴注入與傳統編程之間的差異是什麼?

硬實力

這裏說的硬實力,也就是技術上的真實積累。

怎麼來體現你的技術實力?我總的分爲:技術深度和技術廣度這兩方面。技術廣度通俗的講,就是你熟悉該技術點的使用以及基本原理。通常面試官在面試首輪會問不少技術點,來考覈你是否能正確使用。

準備不充分的面試,徹底是浪費時間,更是對本身的不負責(若是title很高,當我沒說)。

今天給你們分享下在跳槽時須要準備的Java面試大綱,其中大部分都是面試過程當中的面試題,能夠對照這查漏補缺,固然了,這裏所列的確定不可能覆蓋所有方式。

軟實力

軟實力在面試過程當中也尤其重要(有時候真的要更重要),主要是指和麪試官的溝通,對一個問題的闡述方式和表達方式,邏輯思惟能力等。

面試過程全程微笑,項目描述須要嚴謹的表述,我的的優缺點基本要作到隨口而出..等這些其實就是軟實力的體現。

知己知彼、百戰不殆,面試也是如此,針對於上面的面試問到的知識點我總結出了互聯網公司java程序員在面試中涉及到的絕大部分架構面試題及答案作成了文檔和架構視頻資料免費分享給你們(包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分佈式、高併發等架構技術資料),但願能幫助到您面試前的複習且找到一個好的工做,也節省你們在網上搜索資料的時間來學習,也能夠分享動態給身邊好友一塊兒學習!

資料領取方式:關注+轉發後,私信關鍵詞 【架構資料】便可獲取!

重要的事情說三遍,轉發、轉發、轉發後再發私信,才能夠拿到哦!

最後針對於互聯網公司java程序員涉及到的絕大部分難題我作成了文檔和架構視頻資料免費分享給你們(包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分佈式、高併發等架構技術資料),但願能幫助到且找到一個好的工做,也節省你們在網上搜索資料的時間來學習,也能夠關注我一下之後會有更多幹貨分享。

資料領取方式:

關注+轉發後,私信關鍵詞 【資料或者java】免費獲取!

重要的事情說三遍,轉發、轉發、轉發後再發私信,才能夠拿到!

相關文章
相關標籤/搜索