JVM 編譯

Java宣稱自己是write once, run everywhere.那這是如何做到的呢?大部分人都會回答說是通過編譯成爲class文件然後運行JVM上,那麼是所有的情況下都這樣嗎?

自然有例外,其實總的來說,編譯在JVM代表三個不同的操作。

  1. 前端編譯,指的是.java文件變爲.class的過程
  2. JIT編譯,指的是將熱點字節碼編譯爲機器碼的過程(方法級)
  3. AOT編譯,指的是直接將Java文件編譯成爲機器碼的過程。(Java9)

那麼這種特別的編譯方式到底有啥好處呢?

       首先,通過JVM,屏蔽了底層操作系統API的區別,使得只要編譯成爲class文件即可運行,其次JIT只編譯熱點代碼,提高了效率,避免了冷代碼也參與編譯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章