初見Java反射

先放兩個連接:https://blog.csdn.net/sinat_38259539/article/details/71799078html

                        https://www.cnblogs.com/ysocean/p/6516248.html設計模式

什麼是反射:在運行狀態中,對一個任意的類均可以知道這個類的全部屬性和方法,對於任意一個對象都能調用任意方法和屬性,而且能改變它的屬性,而這也是Java被視爲動態(或準動態,爲啥要說是準動態,由於通常而言的動態語言定義是程序運行時,容許改變程序結構或變量類型,這種語言稱爲動態語言。從這個觀點看,Perl,Python,Ruby是動態語言,C++,Java,C#不是動態語言。)語言的一個關鍵性質。框架

另外一種理解jvm

 

總結下就是new student();時候jvm去本地找這個class文件,建立一個student對象空間,加載自動建立一個class對象,而後經過這個class對象反向去獲取student的內容信息性能

反射能作什麼:其實反射運用的就是class類的相關方法,能對正在運行的類進行一些常規的操做.net

 

當時用配置文件來使用Java反射的時候,在src目錄下放相似txt這樣的配置,到時只用改配置就能夠直接切換獲取內容,不須要註釋代碼。設計

 

反射提供了一種運行期獲取對象元信息的手段。寫框架代碼用的比較多,由於須要運行時動態獲取和操做對象的屬性和方法。儘可能少用反射,會有性能開銷,大多數場景下能夠用設計模式代替3d

相關文章
相關標籤/搜索