反射 Reflect JVM類載入

2021-10-05 06:12:12 字數 1501 閱讀 2150

概念:在程式執行的時候 動態的載入類和類的資訊。

package com.qianfeng.reflects;

public

class

person

public

person

(string name, integer age, string add)

public string getname()

public

void

setname

(string name)

public integer getage()

public

void

setage

(integer age)

public string getadd()

public

void

setadd

(string add)

private

void

hello()

public

voidhi(

)@override

public string tostring()

}

class cls

=p.getclass()

;person p=

(person)cls.

newinstance()

;

class cls

=person.

class

;constructor

constructor = c2.

getconstructor

(integer.

class

,string.

class

,integer.

class);

//設定引數類型別

person newinstance = constructor.

newinstance(1

,"zs",18

);//設定具體引數

參構造方法(以person為例,有兩個構造方法,乙個帶參,乙個不帶參)

@org

.junit.jupiter.api.test

void

test()

throws exception

}}

@org

.junit.jupiter.api.test

void

test2()

throws exception

@org

.junit.jupiter.api.test

void

test3()

throws exception

連線

初始化

載入的時機

反射2 動態載入類

動態載入 和靜態載入的區別 class.forname 類的全稱 編譯時刻載入類是靜態載入類,執行時刻載入類是動態載入類。package dog public class animal if cat equals args 0 package dog public class dog 很顯然以上第一...

類的載入和反射機制

1.啟動jvm 2.將需要執行的class檔案載入到虛擬機器記憶體中 3.找到主類,開始執行主函式 載入步驟 1.先委託父類載入類,如果父類已經載入,就不需要再次載入,如果父類沒有載入,再由本載入器載入 2.解析類路徑,將類路徑轉換成檔案路徑 3.通過檔案輸入流來讀取class檔案,得到位元組陣列 ...

對於類的載入和類反射的理解

總體來說,類載入一共要進行三個階段 載入 將j a原始檔預編譯成j a.class位元組碼檔案然後載入進記憶體當中,並且將這些靜態資料轉換成方法區執行時的資料結構,最後生成乙個代表這個類的j a.lang.class物件 有了物件就能夠呼叫類的方法,這也是反射的基礎 驗證 對載入的類進行jvm規範驗...