本人新手,之前學過JAVA,現(xiàn)在開始接觸安卓,安卓5.0之后采用了新的虛擬機ART,在ART 環(huán)境中,應用在第一次安裝的時候,字節(jié)碼就會預先編譯成機器碼,這樣的話,應用的啟動(首次)和執(zhí)行都會變得更加快速。對于JVM,java程序每次執(zhí)行時都要通過JVM解釋成為本地機器碼,JAVA會不會也采用這個思路?在程序安裝或者第一次運行時,保存生成的機器碼,之后的每次執(zhí)行都運行機器碼,這樣效率不就提高了很多了嗎?想知道JAVA JVM將來會不會也采用這種模式?
2 回答

千萬里不及你
TA貢獻1784條經(jīng)驗 獲得超9個贊
你理解的java==oracle出的java,其實其他公司也有做jvm(比如說ibm,比如說開源組織openjdk),其中一款jvm(我忘記名字了)就是把所有代碼都做JIT。

翻過高山走不出你
TA貢獻1875條經(jīng)驗 獲得超3個贊
JVM中采用了JIT,若某代碼執(zhí)行頻率達到一個闊值的時,JVM會事先將這部分代碼編譯好。
可了解下 JAVA JIT(just in time)
java->動態(tài)語言: 解釋性,但由于性能的考慮,所以加入了JIT
java->跨平臺:java -> .class,無法直接機器碼
樓主可以里了解下CHROME V8,他就是沒有使用中間代碼,直接編譯成機器碼,然后動態(tài)的修改一些代碼,V8開發(fā)者也是jvm hotspot開發(fā)者之一,V8的很多設計都借鑒了JAVA的思想!
添加回答
舉報
0/150
提交
取消