Java反射機制的做用:java
1)在運行時判斷任意一個對象所屬的類。mysql
2)在運行時判斷任意一個類所具備的成員變量和方法。sql
3)在運行時任意調用一個對象的方法框架
4)在運行時構造任意一個類的對象性能
拓展:.net
一、什麼是反射機制?hibernate
簡單說,反射機制值得是程序在運行時可以獲取自身的信息。在java中,只要給定類的名字,那麼就能夠經過反射機制來得到類的全部信息。設計
二、java反射機制提供了什麼功能?對象
在運行時可以判斷任意一個對象所屬的類開發
在運行時構造任意一個類的對象
在運行時判斷任意一個類所具備的成員變量和方法
在運行時調用任一對象的方法
在運行時建立新類對象
三、哪裏用到反射機制?
jdbc中有一行代碼:Class.forName('com.MySQL.jdbc.Driver.class').newInstance();那個時候只知道生成驅動對象實例,後來才知道,這就是反射,如今
不少框架都用到反射機制,hibernate,struts都是用反射機制實現的。
四、反射機制的優缺點?
靜態編譯:在編譯時肯定類型,綁定對象,即經過
動態編譯:運行時肯定類型,綁定對象。動態編譯最大限度的發揮了java的靈活性,體現了多態的應用,有利於下降類之間的耦合性。
一句話,反射機制的優勢就是能夠實現動態建立對象和編譯,體現出很大的靈活性,特別是在J2EE的開發中 它的靈活性就表現的十分明顯。好比,一個大型的軟件,不可能一次就把把它設計的很完美,當這個程序編 譯後,發佈了,當發現須要更新某些功能時,咱們不可能要用戶把之前的卸載,再從新安裝新的版本,假如 這樣的話,這個軟件確定是沒有多少人用的。採用靜態的話,須要把整個程序從新編譯一次才能夠實現功能 的更新,而採用反射機制的話,它就能夠不用卸載,只須要在運行時才動態的建立和編譯,就能夠實現該功 能。 它的缺點是對性能有影響。使用反射基本上是一種解釋操做,咱們能夠告訴JVM,咱們但願作什麼而且它 知足咱們的要求。這類操做老是慢於只直接執行相同的操做。