1. 程式人生 > >Java 動態代理是基於什麽原理(還沒整理完)

Java 動態代理是基於什麽原理(還沒整理完)

logs 判斷 java代碼 動態生成 voc https retrofit 哪些 AS

1> Java的反射機制在平時的業務開發過程中很少用到,但是在一些基礎框架的搭建上應用非常廣泛

2>什麽是Java反射機制

Java反射機制是在運行狀態中,對於任意一個類,都能夠知道這個類的所有屬性和方法;對於任意一個對象,都能夠調用它的任意方法和屬性;這種動態獲取信息以及動態調用對象方法的功能稱為java語言的反射機制。

3>反射機制提供了哪些功能

----在運行時判定任意一個對象所屬的類

----在運行時構造任意一個類的對象

----在運行時判定任意一個類所具有的成員變量和方法

----在運行時調用任意一個對象的方法

----生成動態代理

4> 反射機制的應用場景

----逆向代碼,例如反編譯

----與註解相結合的框架,例如Retrofit

----單純的反射機制應用框架,例如EventBus 2.x

----動態生成類框架 例如Gson

5>反射機制的優缺點:

----優點:運行期類型的判斷,動態類加載,動態代理使用反射

----缺點:性能是一個問題,反射相當於一系列解釋操作,通知jvm要做的事情,性能比直接的java代碼要慢很多。

.JAVA主要作用是獲取程序在運行時刻的內部結構,包括其中的構造方法、聲明的域和定義的方法等
2JAVA自帶的動態代理是基於java.lang.reflect.Proxy、java.lang.reflect.InvocationHandler兩個類來完成的,使用了JAVA反射機制,通常使用下面方法創建代理對象: Object proxy = Proxy.newProxyInstance(定義代理對象的類加載器,要代理的目標對象的歸屬接口數組,回調接口InvocationHandler)
詳細理解見:http://blog.sina.com.cn/s/blog_548c8a8301013j6u.html

https://www.cnblogs.com/gshacnblogs/p/7159489.html

Java 動態代理是基於什麽原理(還沒整理完)