javac將.java編譯成.class文件,.class是中間代碼文件,并不是假定的機(jī)器代碼,class文件又交給Jvm來運(yùn)行處理。jvm是屬于后端編譯器嗎?,假設(shè)jvm是后端編譯器,jvm里面包括了匯編器嗎,是如何編譯成機(jī)器語言的。大佬們,能告訴我大概的主要流程嗎?很好奇。
1 回答

守著星空守著你
TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超8個贊
1.現(xiàn)代編譯器當(dāng)然包括匯編器
wikipedia 編譯器
2.一開始,Java是編譯成中間代碼,然后在JVM里解釋執(zhí)行的,并沒有再次編譯成機(jī)器碼,只能使用JVM里面寫好的指令。這也一度導(dǎo)致Java速度不夠快被人詬病
3.后來,某些JVM引入了JIT(Just In Time)編譯器,在載入中間代碼后先(部分)編譯都成相應(yīng)平臺的機(jī)器碼,提高運(yùn)行效率。
wikipedia java
添加回答
舉報
0/150
提交
取消