原创 powermock常用註解介紹及區別

@Mock和@InjectMocks區別 @Mock創建一個假數據; @InjectMocks主動將已存在的mock對象注入到bean中, 按名稱注入, 但注入失敗不會拋出異常; ※ 注意:你必須使用@RunWith(Mock

原创 java中的native修飾符

今天偶然看代碼,發現別人有這樣寫的方法,並且jar裏面有幾個dll文件,比較奇怪,於是把代碼打開,發現如下寫法。 public native String GSMModemSMSReadAll(String s, int i);

原创 java 常量池及字節碼文件的9大屬性

常量池的基本結構 java類所對應的常量池主要由常量池數量和常量池數組兩部分組成,如下圖所示,常量池數量緊跟在minor version後面,佔2個字節。常量池數組則緊跟在常量池數量之後。 常量池數組是一個類似數組的結構。這個數

原创 java class字節碼概述

class 字節碼概述 每一個java類被編譯後都會生成一個對應的.class字節碼文件,要想研究JVM加載java類的原理,實現必須掌握java類被編譯成的.class文件結構。下面從幾個方面來描述字節碼的組成格式。 1. cl

原创 代理模式之Cglib動態代理

Cglib動態代理 前兩篇博文靜態代理和JDK動態代理,他們各有優缺點,JDK動態代理缺點: 目標類必須實現的某個接口,如果某個類沒有實現接口則不能生成代理對象; 只能代理接口,要代理類需要使用第三方的CLIGB等類庫; Cgli

原创 代理模式之JDK動態代理

JDK動態代理 上一篇博文靜態代理介紹了靜態代理的簡單實現,以及靜態代理的缺點: 代理對象的一個接口只服務於一種類型的對象,如果要代理的方法很多,勢必要爲每一種方法都進行代理,靜態代理在程序規模稍大時就無法勝任了。 如果接口增加一個

原创 代理模式之靜態代理

代理模式 代理模式爲某個對象提供一個代理,以控制對這個對象的訪問。代理類和委託類有共同的父類或父接口,這樣在任何使用委託類對象的地方都可以用代理對象替代。代理類負責請求的預處理、過濾、將請求分派給委託類處理、以及委託類執行完請求後的