Java 動態代理是基於什麽原理(還沒整理完)
阿新 • • 發佈:2018-06-14
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 動態代理是基於什麽原理(還沒整理完)