java類加載 Constructor類

類的初始化時機
1.創建類的實例
2.訪問類或接口的靜態變量(static final常量除外,static final變量可以)
3.調用類的靜態方法
4.反射(Class.forName(packageName.className))
5.初始化類的子類(子類初始化問題:滿足主動調用,即訪問子類中的靜態變量、方法,否則僅父類初始化)
6.java虛擬機啓動時被標明爲啓動類的類
注:加載順序:啓動類的static block最先加載

(父類靜態成員、靜態代碼塊—>子類靜態成員、靜態代碼塊—>父類實例成員、代碼塊——>父類構造函數—>子類實例成員、代碼塊—>子類構造函數)


獲取類的構造器 
首先介紹一下Constructor類,這個類用來封裝反射得到的構造器,Class有四個方法來獲得Constructor對象
public Constructor<?>[] getConstructors() 返回類中所有的public構造器集合,默認構造器的下標爲0
public Constructor<T> getConstructor(Class<?>... parameterTypes) 返回指定public構造器,參數爲構造器參數類型集合
public Constructor<?>[] getDeclaredConstructors() 返回類中所有的構造器,包括私有
public Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes) 返回任意指定的構造器

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章