java代码编译之后是如何运行的?不知道这些,面试官问你jvm问题,你只能懵圈
目錄
從機器語言->匯編語言->高級語言
JVM的整體結構
java代碼執行流程
java虛擬機種類(常用的就是HotSpot)
從機器語言->匯編語言->高級語言
計算機系統體系對我們來說越來越遠,在不了解底層實現方式的前提下,通過高級語言很容易編寫程序代碼。但事實上計算機并不認識高級語言。
java就屬于高級語言。
JVM的整體結構
java代碼執行流程
java代碼會進行兩次編譯,第一次生成class字節碼文件,第二次使用JIT編譯器將熱點代碼編譯出來,進行緩存起來,增加程序性能。
java虛擬機種類(常用的就是HotSpot)
? ? Classic VM、Exact VM、HotSpot VM、BEA公司(已經被oracle收購)的JRocket、IBM的J9、KVM和CDC/CLDC HotSpot(針對Java ME)、Azul VM、BEA Liquid VM、Zing VM、Apache Harmony、Microsoft VM、Taobao VM、Dalvik VM(執行dex文件,通過class轉換來的)
JRocket虛擬機應該是最快的,專注于服務器端應用,沒有解釋器。
HotSpot VM、BEA公司(已經被oracle收購)的JRocket、IBM的J9是影響力最大的三個虛擬機。
Azul VM、BEA Liquid VM與具體硬件平臺綁定,軟硬件配合的專有虛擬機。
Graal VM(2018.4公布)如果有一天說有別的虛擬機替換HotSopt VM,那么Graal VM希望最大。
總結
以上是生活随笔為你收集整理的java代码编译之后是如何运行的?不知道这些,面试官问你jvm问题,你只能懵圈的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CSDN粉丝可见回来了!
- 下一篇: java类是如何加载的?不知道class