Java程序编译运行过程
整體流程
1.首先由源程序文件編譯成class文件。注意這里的源程序并不僅限于java程序,其他語(yǔ)言如果能夠編譯成class文件,并且符合jvm規(guī)范也能夠在jvm上運(yùn)行。
2.jvm將class文件拷貝到內(nèi)存,解釋成相應(yīng)的機(jī)器語(yǔ)言運(yùn)行。我們常用的hotspot虛擬機(jī)在運(yùn)行時(shí)會(huì)挑選出一些熱點(diǎn)代碼(以函數(shù)為單位),將這些熱點(diǎn)代碼直接編譯成機(jī)器碼存儲(chǔ)起來(lái),下次執(zhí)行的時(shí)候,就不需要jvm解釋,而是直接運(yùn)行機(jī)器碼。
總結(jié):由于java語(yǔ)言先編譯成字節(jié)碼,在運(yùn)行時(shí)又會(huì)對(duì)代碼解釋成相關(guān)平臺(tái)的機(jī)器語(yǔ)言。所以java常被成為半編譯半解釋的混合型語(yǔ)言。
編譯型語(yǔ)言:在程序運(yùn)行之前,有一個(gè)單獨(dú)的編譯過程,將程序翻譯成機(jī)器語(yǔ)言,以后執(zhí)行這個(gè)程序時(shí),就不用再進(jìn)行翻譯了。
解釋型語(yǔ)言:是在運(yùn)行的時(shí)候?qū)⒊绦蚍g成機(jī)器語(yǔ)言,所以運(yùn)行速度相對(duì)于編譯型語(yǔ)言要慢。
總結(jié)
以上是生活随笔為你收集整理的Java程序编译运行过程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis1 晨考题
- 下一篇: Java变量名的命名方式