第一步:Java加載
-第一步獲取二進(jìn)制流
-將靜態(tài)存儲(chǔ)結(jié)構(gòu)轉(zhuǎn)換為方法區(qū)的運(yùn)行時(shí)數(shù)據(jù)結(jié)構(gòu)
-在Java堆里生成類的對(duì)象,作為方法的入口
第二步:驗(yàn)證
-驗(yàn)證Java的class文件表示告匠,魔數(shù)
-驗(yàn)證版本號(hào)
-驗(yàn)證常量池靖苇,看是否存在該常量(類型围来,數(shù)據(jù)結(jié)構(gòu)是否正確嚼吞,字符集相關(guān))
-class的各個(gè)部分是否正確(字段表舅逸、方法表是否正確)
-元數(shù)據(jù)驗(yàn)證(父類驗(yàn)證儒拂、繼承了不該集成的類寸潦、final的驗(yàn)證、是否實(shí)現(xiàn)了-接口的各種方法等等其他)
-字節(jié)碼驗(yàn)證(指令驗(yàn)證)
-符號(hào)引用驗(yàn)證()