java反射機制詳解
java反射機制是在運行狀態下,對任意一個類可以獲取該類的屬性和方法,對任意一個對象可以調用其屬性和方法。這種動態的獲取信息和調用對象的方法的功能稱為java的反射機制
- class<?>類,在java.lang包下面,class類的實例表示正在運行的java應用程序中的類和接口 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??、class是一個類,一個描述類的類(也就是描述類的本身),封裝了描述字段的Field、方法Method和構造器的Constructor等屬性? ? ? ? ? ? ? ??、對象照鏡子后可以得到的信息(某個類的數據成員、方法和構造器、某個類到底實現了那些方法)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??、對于每個類而言,JRE都為其保留一個不變的Class類型的對象? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??、Class對象只能有系統創建對象? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ??、一個類在jvm中只會有一個實例? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?注意:class沒有公共構造方法,class是在加載類時由java虛擬機已經調用類的加載器中的defineClass方法自動加載的、? ? ? ? ? ? ? ??
- 、繼承了java.lang.Object實現了Serializable、AnnotatedElement、GenericDeclaration、Type、
- 、涉及的相關方法? ?
- 、反射的好處 :大大增強了程序的可擴展性
- 、反射的基本步驟? 1、獲取Class對象 2、實例化對象 3、訪問對象的屬性、方法等。。?
- 、獲取此Class對象有三種方式? ?Class.forName(classname)?用于做類加載 2、obj.getClass()用于獲得對象的類型 3、類名.class
- 、創建對象的兩種方式? 1、調用空參數的構造函數 2、調用帶參數的構造函數?
- 、利用newInstance() 創建對象 ,調用的對象必須有無參的構造器
- 、ClassCloader類加載器? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?類加載器是用來把類裝載到jvm中,jvm規范中定義了兩種類加載器,啟動類加載器和用戶自定義類加載器。jvm在運行時會產生三個類加載器組成的?初始化加載器層次結構 引導類加載器、擴展類加載器和? 系統類加載器? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??