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