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,面向切面的編程。