黑馬程式設計師Java基礎加強49 56學習日記

2021-05-26 22:16:40 字數 1145 閱讀 3551

1,程式中的**是指:要為已存在的多個具有相同介面的目標類的各個方法增加一些系統功能,例如,異常處理、日誌、計算方法的執行時間、事務管理、等等,編寫乙個與目標類具有相同介面的**類,**類的每個方法呼叫目標類的相同方法,並在呼叫方法時加上系統功能的**。

2, 交叉業務的程式設計問題即為面向方面的程式設計(aspect oriented program ,簡稱aop),aop的目標就是要使交叉業務模組化。可以採用將切面**移動到原始方法的周圍,這與直接在方法中編寫切面**的執行效果是一樣的,使用**技術正好可以解決這種問題,**是實現aop功能的核心和關鍵技術。

3,jvm可以在執行期動態生成出類的位元組碼,這種動態生成的類往往被用作**類,即動態**類。jvm生成的動態類必須實現乙個或多個介面,所以,jvm生成的動態類只能用作具有相同介面的目標類的**。

4,cglib庫可以動態生成乙個類的子類,乙個類的子類也可以用作該類的**,所以,如果要為乙個沒有實現介面的類生成動態**類,那麼可以使用cglib庫。

5,**類的各個方法中通常除了要呼叫目標的相應方法和對外返回目標返回的結果外,還可以在**方法中的如下四個位置加上系統功能**:

(1).在呼叫目標方法之前

(2).在呼叫目標方法之後

(3).在呼叫目標方法前後

(4).在處理目標方法異常的catch塊中

6.在處理目標方法異常的catch塊中6,讓jvm建立動態類及其例項物件,需要給它提供三個方面的資訊:

(1). 生成的類中有哪些方法,通過讓其實現哪些介面的方式進行告知;

(2).產生的類位元組碼必須有個乙個關聯的類載入器物件;

(3).生成的類中的方法的**是怎樣的,也得由我們提供。把我們的**寫在乙個約定好了介面物件的方法中,把物件傳給它,它呼叫我的方法,即相當於插入了我的**。提供   執行**的物件就是那個invocationhandler物件,它是在建立動態類的例項物件的構造方法時傳遞進去的。在上面的invocationhandler物件的invoke方法中加一點**,就可以看到這些**被呼叫執行了。

7,工廠類beanfactory負責建立目標類或**類的例項物件,並通過配置檔案實現切換。其getbean方法根據引數字串返回乙個相應的例項物件,如果引數字串在配置檔案中對應的類名不是proxyfactorybean,則直接返回該類的例項物件,否則,返回該類例項物件的getproxy方法返回的物件。

黑馬程式設計師 基礎加強 註解

annotation 註解 也被稱為元資料,為我們在 中新增資訊提供了一種形象化的方法,使我們可以在稍後某個時刻非常方便的使用這些資料 1 註解相當於乙個標記,加了註解相當於加了標記,可以通過反射方式獲得。2 標記可以新增在包 類 方法 字段 引數以及區域性變數上。3 乙個註解就是乙個類,使用註解就...

黑馬程式設計師 java基礎 封裝

asp.net unity開發 net培訓 期待與您交流!封裝表示吧資料項和方法隱藏在物件內部,在類定義中用private關鍵字來實現封裝。封裝有什麼好處?用private把類的細節與外界隔離起來,從而實現資料項和方法的隱藏,而要訪問這些資料項和方法唯一的途徑就是通過類本身,類才有資格呼叫它所擁有的...

黑馬程式設計師 Java基礎 陣列

1.陣列的定義格式 1 int arry new int 5 2 int arry new int 5 int arry 3 常見問題 陣列越界異常 空指標異常。2.陣列常見操作 1 遍歷,查詢陣列,輸出陣列 int arry new int 3 for int i 0 i 3 i int a fo...