java高階面試題三

2021-08-17 09:55:38 字數 1852 閱讀 5355

一、springmvc的工作原理

1、使用者傳送請求給**控制器

2、**控制器指派處理器對映

3、根據handlemaooing查詢處理器

4、獲取到處理器位址

5、**控制器返回處理器位址

6、**控制器指派處理器介面卡(帶著處理器對映器返回的位址)

7、處理器介面卡根據命令對c進行處理

8、c向m發出請求

9、m查詢資料庫

10、資料庫做出響應並返回

11、m返回給c

12、c做出相應返回給處理器介面卡

13、處理器介面卡返回給**處理器

14、**控制器提交到視**析器進行解析

15、解析返回

16、到前台jsp

17、結果返回給**控制器

18、**控制器返回給使用者

二、spring的工作原理

spring核心aop面向切面程式設計,可以為某一類物件,進行監督和控制,從而達到對乙個模組擴充的功能。

spring目的:物件與物件之間的關係沒有通過**來關聯都是通過配置類說明管理的

spring是乙個容器,在容器裡面的物件才會後spring所提供的功能。

三、spring如何控制管理事務

原理:spring的核心是ioc和aop,ioc是將物件建立交給spring容器來完成,aop是面向切面程式設計,內部實現是動態**,動態**內部是反射。

spring宣告式管理事務:在底層建立aop的基礎上,本質是對方法前後進行攔截,然後在目標方法開始之前建立或加入乙個事務,在執行完目標方法之後根據提交回滾事務。

spring程式設計式管理事務:在spring出現以前基於pojo的應用來說是唯一選擇。hibernate框架,我們需要在**中顯式呼叫begintransaction()、commit()、rollback()事務管理相關方法。

事務隔離性:事務的隔離性是指多個事務併發執行的時候相互之間不受干擾,是事務acid中i,根據隔離程度分類。

事務的傳播性:事務巢狀的時候使用。

四、bean的作用域

1、singleton:單例設計模式,在整個spring  ioc容器中,使用singlenton定義bean只有乙個例項。

2、prototype:原型模式,每次通過容器getbean方法獲取prototype定義bean時,都將產生乙個新的例項。

3、request:對於每次http請求,使用request定義的bean都將產生乙個新例項,每次請求都會產生不同的例項,只有在web應用中使用spring時,該域有用。

4、session:對於每次http session,使用session定義的bean都產生乙個新例項,在web中spring有用。

5、globalsession:每個全域性的http session,使用定義的bean都產生乙個新例項,僅使用portlet context的時候有效。在web應用spring是該域有用。

五、設計模式

1、工廠模式:專門負責將大量有共同介面的類例項化。

2、簡單工廠模式(靜態工廠方法模式):由乙個工廠物件決定建立決定出哪一中產品類的例項。

3、工廠方法模式(多型性工廠模式):定義乙個建立產品物件的工廠介面,將實際建立工作給子類做。

4、單例模式:確保乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項,

特點:單例只能有乙個例項;單例類必須自己建立自己的唯一的例項;單例類必須給所有其他物件提供這一例項。

5、多例模式:可以有多個例項,並且多例類必須自己建立、自己管理自己的例項,並向外界土工自己的例項。

6、**模式:給某個物件提供**物件,並由**物件控制對原物件的引用。

Java中高階面試題(1)

list和set比較,各自的子模擬較 對比一 arraylist與linkedlist的比較 1 arraylist是實現了基於動態陣列的資料結構,因為位址連續,一旦資料儲存好了,查詢操作效率會比較高 在記憶體裡是連著放的 2 因為位址連續,arraylist要移動資料,所以插入和刪除操作效率比較低...

IOS高階面試題

1.寫一下uibutton與uitableview的層級結構 2.cocoa的foundation物件與core foundation物件通過什麼關鍵字進行轉換?這些關鍵字有什麼區別?3.kvo是什麼?內部是怎麼實現的?4.是否可以把比較耗時的操作放在nsnotificationcenter中處理?...

PHP高階面試題

1.寫出乙個能建立多級目錄的php函式 function createdir path,mode elseelse path aa bb cc cd 要建立的目錄 mode 0755 建立目錄的模式 createdir path,mode 測試 2.請寫一段php 確保多個程序同時寫入同乙個檔案成功...