java開(kāi)發(fā)對(duì)cpu要求高嗎 Java源程序如何變成Java字節(jié)碼?
Java源程序如何變成Java字節(jié)碼?默認(rèn)情況下,編譯器會(huì)將java文件轉(zhuǎn)換為字節(jié)碼,以便計(jì)算機(jī)能夠理解它,并手動(dòng)使用CMD javacxxxx.java文件實(shí)際上,編譯時(shí)沒(méi)有虛擬機(jī)字節(jié)碼層JS到V8
Java源程序如何變成Java字節(jié)碼?
默認(rèn)情況下,編譯器會(huì)將java文件轉(zhuǎn)換為字節(jié)碼,以便計(jì)算機(jī)能夠理解它,并手動(dòng)使用CMD javacxxxx.java文件實(shí)際上,編譯時(shí)沒(méi)有虛擬機(jī)字節(jié)碼層
JS到V8。它被直接編譯成CPU指令,這也是V8中高速的核心。Java還有一層虛擬機(jī)指令。
然而,JS仍然有許多動(dòng)態(tài)語(yǔ)言特性。由于動(dòng)態(tài)語(yǔ)言不能預(yù)先固化變量類(lèi)型,因此會(huì)產(chǎn)生大量的處理成本。
編譯完成后,首次運(yùn)行的代碼將包含緩存到CPU中的指令。一旦Java被緩存,虛擬指令也將被繞過(guò)。所以在這個(gè)階段,CPU指令沒(méi)有區(qū)別。php8也是如此,它很快就會(huì)到來(lái)。
但是每種語(yǔ)言的優(yōu)化程度和動(dòng)態(tài)部分的解析復(fù)雜度不同,導(dǎo)致實(shí)際速度的差異。從這個(gè)角度看,Java沉淀時(shí)間較長(zhǎng),強(qiáng)大的語(yǔ)言功能沒(méi)有歷史負(fù)擔(dān),所以Java運(yùn)行后會(huì)出現(xiàn)更快的速度。