這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)java程序的運(yùn)行流程介紹,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
1、編輯源代碼xxx.java
2、編譯xxx.java文件生成字節(jié)碼文件xxx.class
3、JVM中的類加載器加載字節(jié)碼文件
4、JVM中的執(zhí)行引擎找到入口方法main(),執(zhí)行其中的方法
從源碼到字節(jié)碼:
從我們寫的java文件到通過編譯器編譯成java字節(jié)碼文件(也就是.class文件),這個過程是java編譯過程;
字節(jié)碼文件:真正實(shí)現(xiàn)了java語言的跨平臺。各種不同平臺的虛擬機(jī)都統(tǒng)一使用這種相同的程序存儲格式。更進(jìn)一步說,jvm運(yùn)行的是class字節(jié)碼文件,只要是這種格式的文件就行,所以,實(shí)際上jvm并不像我之前想象地那樣與java語言緊緊地捆綁在一起。
把一個簡單的HelloWorld程序生成的字節(jié)碼文件重定向?yàn)閠xt文件:
javap -v HelloWorld > HelloWorld.class.txt,部分信息如下
一份字節(jié)碼文件包含了魔數(shù)與 Class 文件的版本,常量池,訪問標(biāo)志等等信息,總之,字節(jié)碼文件很簡單很強(qiáng)大,它存放了這個類的各種信息:字段、方法、父類、實(shí)現(xiàn)的接口等各種信息。
上述就是小編為大家分享的java程序的運(yùn)行流程介紹了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。