雜糅-反射

java程序運行過程:

class文件被classLoader將其load到codeSegment中,運行環境找到main函數開始執行。動態加載機制,將會有很多class被load。

jdK的classloader有很多種,jdk內置的bootstrap class loader加載最核心的類,用c等操作系統本地語言來寫。jdk內置的extesion class loader。

Class.forName(),傳入類的名稱,把名字是這個的類加載進來。返回一個對象。Class c=Class.forName();   c.newInstance();創建了對象。

用處:配置文件中寫入類後就可以直接使用。SSH中使用較多。通過反射機制來讀取配置文件加載類。

//通過類名加載類

Class c=Class.forName(...);  

//創建實例o

 Object o=c.newInstance();

//獲取所有方法

Method[] methods=c.getMethods();

//調用具體的方法

for(Method m:methods){

if(m.getName().equals("mm")){

//調用方法,invoke可變參數的方法 invoke(Objcet obj,Object ...args)

m.invoke(o);

}

通過反射機制,當前登錄的人權限,ssh,面向切面的編程。

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