說明
當(dāng)程序主動(dòng)使用某個(gè)類時(shí),如果該類還未被加載到內(nèi)存中,則系統(tǒng)會(huì)通過以下三個(gè)步驟對(duì)該類進(jìn)行初始化。
類加載步驟
1、加載:將class文件字節(jié)碼內(nèi)容加載到內(nèi)存中,并將這些靜態(tài)數(shù)據(jù)轉(zhuǎn)換成方法區(qū)的運(yùn)行時(shí)數(shù)據(jù)結(jié)構(gòu),然后生成一個(gè)代表這個(gè)類的 java.lang.Class 對(duì)象,作為方法區(qū)中類數(shù)據(jù)的訪問入口。
2、鏈接:將Java類的二進(jìn)制代碼合并到JVM的運(yùn)行狀態(tài)之中的過程。
3、執(zhí)行類構(gòu)造器() 方法的過程。
實(shí)例
public class ClassLoadingTest{
public static void main (String [] args){
System.out.println(test.m);
}
}
class test{
static {
m = 300;
}
static int m = 100;
}
//第一步:加載
//第二步:鏈接結(jié)束后m=0
//第三步:初始化結(jié)束后,m的值由()方法執(zhí)行決定
/*
這個(gè)test構(gòu)造器()方法由類變量的賦值和靜態(tài)代碼塊中的語句按照順序合并產(chǎn)生,類似于
(){
m = 300;
m = 100;
}
*/
以上就是java類加載的過程,希望對(duì)大家有所幫助。更多關(guān)于“java培訓(xùn)”的問題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學(xué),課程大綱緊跟企業(yè)需求,更科學(xué)更嚴(yán)謹(jǐn),每年培養(yǎng)泛IT人才近2萬人。不論你是零基礎(chǔ)還是想提升,都可以找到適合的班型,千鋒教育隨時(shí)歡迎你來試聽。