
java jit是什么,讓我們一起了解一下?
jit是即時(shí)編譯器,這是是針對(duì)解釋型語言而言的,而且并非虛擬機(jī)必須,也是一種優(yōu)化手段,Java的商用虛擬機(jī)HotSpot就有這種技術(shù)手段,Java虛擬機(jī)標(biāo)準(zhǔn)對(duì)JIT的存在沒有作出任何規(guī)范,所以這是虛擬機(jī)實(shí)現(xiàn)的自定義優(yōu)化技術(shù)。
HotSpot虛擬機(jī)的執(zhí)行引擎在執(zhí)行Java代碼是可以采用【解釋執(zhí)行】和【編譯執(zhí)行】兩種方式的,如果采用的是編譯執(zhí)行方式,那么就會(huì)使用到JIT,而解釋執(zhí)行就不會(huì)使用到JIT,所以,早期說Java是解釋型語言,是沒有任何問題的,而在擁有JIT的Java虛擬機(jī)環(huán)境下,說Java是解釋型語言嚴(yán)格意義上已經(jīng)不正確了。

HotSpot中的編譯器是javac,他的工作是將源代碼編譯成字節(jié)碼,這部分工作是完全獨(dú)立的,完全不需要運(yùn)行時(shí)參與,所以Java程序的編譯是半獨(dú)立的實(shí)現(xiàn)。有了字節(jié)碼,就有解釋器來進(jìn)行解釋執(zhí)行,這是早期虛擬機(jī)的工作流程,后來,虛擬機(jī)會(huì)將執(zhí)行頻率高的方法或語句塊通過JIT編譯成本地機(jī)器碼,提高了代碼執(zhí)行的效率,至此你已經(jīng)了解了JIT在Java虛擬機(jī)中所處的地位和工作的主要內(nèi)容。
示例代碼操作:混合模式
C:\Users\Administrator>java?-version java?version?"1.8.0_144" Java(TM)?SE?Runtime?Environment?(build?1.8.0_144-b01) Java?HotSpot(TM)?64-Bit?Server?VM?(build?25.144-b01,?mixed?mode) ```shell C:\Users\Administrator>java?-version java?version?"1.8.0_144" Java(TM)?SE?Runtime?Environment?(build?1.8.0_144-b01) Java?HotSpot(TM)?64-Bit?Server?VM?(build?25.144-b01,?mixed?mode)
以上就是小編今天的分享了,希望可以幫助到大家。
