類加載器和動態代理

1、類加載器

1.什麼是類加載器,做用是什麼?

類加載器就加載字節碼文件(.class)java

 

2.類加載器的種類

類加載器有三種,不一樣類加載器加載不一樣的數組

1)BootStrap:引導類加載器:加載都是最基礎的文件spa

2)ExtClassLoader:擴展類加載器:加載都是基礎的文件代理

3)AppClassLoader:應用類加載器:三方jar包和本身編寫java文件code

怎麼得到類加載器?(重點)對象

ClassLoader 字節碼對象.getClassLoader();blog

2、動態代理

1.什麼是代理(中介)

目標對象/被代理對象 ------ 房主:真正的租房的方法接口

代理對象 ------- 黑中介:有租房子的方法(調用房主的租房的方法)內存

執行代理對象方法的對象 ---- 租房的人ci

流程:咱們要租房----->中介(租房的方法)------>房主(租房的方法)

抽象:調用對象----->代理對象------>目標對象

2.動態代理

動態代理:不用手動編寫一個代理對象,不須要一一編寫與目標對象相同的方法,這個過程,在運行時 的內存中動態生成代理對象。------字節碼對象級別的代理對象

動態代理的API:

在jdk的API中存在一個Proxy中存在一個生成動態代理的的方法newProxyInstance

static Object

newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h)

 

返回值:Object就是代理對象

參數:loader:表明與目標對象相同的類加載器-------目標對象.getClass().getClassLoader()

interfaces:表明與目標對象實現的全部的接口字節碼對象數組

h:具體的代理的操做,InvocationHandler接口

注意:JDK的Proxy方式實現的動態代理 目標對象必須有接口 沒有接口不能實現jdk版動態代理

相關文章
相關標籤/搜索