您好,歡迎來到賦能網!

java編譯方式怎么查?Java有幾種編譯方式?

賦能網 2023-05-09 97

java程序代碼需要編譯后才能在虛擬機中運行,并且還要保證java代碼的正確性才能順利進行java代碼運行,那java編譯方式怎么查?接下來我們就來給大家講解一下java編譯方式查詢方式!

java編譯方式通過編譯文件可以查看。

Java有幾種編譯方式?

1.前端編譯

把Java源碼文件(.java)編譯成Class文件(.class)的過程; 也即把滿足Java語言規(guī)范的程序轉化為滿足JVM規(guī)范所要求格式的功能;

優(yōu)點:

這階段的優(yōu)化是指程序編碼方面的;

許多Java語法新特性("語法糖":泛型、內部類等等),是靠前端編譯器實現(xiàn)的,而不是依賴虛擬機;

編譯成的Class文件可以直接給JVM解釋器解釋執(zhí)行,省去編譯時間,加快啟動速度;

缺點:

對代碼運行效率幾乎沒有任何優(yōu)化措施;

解釋執(zhí)行效率較低,所以需要結合下面的JIT編譯;

前端編譯器:Oracle javac、Eclipse JDT中的增量式編譯器(ECJ)等;

2、后端編譯/即時(JIT)編譯

通過Java虛擬機(JVM)內置的即時編譯器(Just In Time Compiler,JIT編譯器);在運行時把Class文件字節(jié)碼編譯成本地機器碼的過程;

優(yōu)點:

通過在運行時收集監(jiān)控信息,把"熱點代碼"(Hot Spot Code)編譯成與本地平臺相關的機器碼,并進行各種層次的優(yōu)化;

可以大大提高執(zhí)行效率;

缺點:

收集監(jiān)控信息影響程序運行;

編譯過程占用程序運行時間(如使得啟動速度變慢);

編譯機器碼占用內存;

JIT編譯器:HotSpot虛擬機的C1、C2編譯器等;

另外,JIT編譯速度及編譯結果的優(yōu)劣,是衡量一個JVM性能的很重要指標;

所以對程序運行性能優(yōu)化集中到這個階段;

也就是說可以對這個階段進行JVM調優(yōu);

3、靜態(tài)提前編譯(Ahead Of Time,AOT編譯)

程序運行前,直接把Java源碼文件(.java)編譯成本地機器碼的過程;

優(yōu)點:

編譯不占用運行時間,可以做一些較耗時的優(yōu)化,并可加快程序啟動;

把編譯的本地機器碼保存磁盤,不占用內存,并可多次使用;

缺點:

因為Java語言的動態(tài)性(如反射)帶來了額外的復雜性,影響了靜態(tài)編譯代碼的質量;

一般靜態(tài)編譯不如JIT編譯的質量,這種方式用得比較少;

靜態(tài)提前編譯器(AOT編譯器):JAOTC、GCJ、Excelsior JET、ART (Android Runtime)等;

Java編譯方式就是前端編譯、即時編譯以及靜態(tài)提前編譯,我們需要了解其編譯方式的優(yōu)點以及缺點,然后再根據實際情況去選擇合適的編譯方式!最后大家如果想要了解更多初識java知識,敬請關注賦能網。


本文鏈接:

本文章“java編譯方式怎么查?Java有幾種編譯方式?”已幫助 97 人

免責聲明:本信息由用戶發(fā)布,本站不承擔本信息引起的任何交易及知識產權侵權的法律責任!

本文由賦能網 整理發(fā)布。了解更多培訓機構》培訓課程》學習資訊》課程優(yōu)惠》課程開班》學校地址等機構信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細解答:
咨詢熱線:4008-569-579

如果本頁不是您要找的課程,您也可以百度查找一下: