溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C語(yǔ)言、Java、JavaScript的編譯運(yùn)行方式是什么

發(fā)布時(shí)間:2022-03-01 10:46:00 來(lái)源:億速云 閱讀:114 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹了C語(yǔ)言、Java、JavaScript的編譯運(yùn)行方式是什么,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

C語(yǔ)言的編譯運(yùn)行方式

以 C 語(yǔ)言為例,我們要用 C 語(yǔ)言寫(xiě)一段程序,需要先用 C 語(yǔ)言寫(xiě)成 cpp 文件,然后使用編譯器將其編譯成可執(zhí)行文件??蓤?zhí)行文件由二進(jìn)制的機(jī)器碼組成,但是不同機(jī)器的CPU不一樣(決定了機(jī)器碼的不同),系統(tǒng)也不一樣(決定了可執(zhí)行文件格式的不同),所以它們編譯出來(lái)的二進(jìn)制文件也是不一樣的。比如 Windows 編譯出來(lái)的是 obj,lib,dll,exe 這樣的文件,而 Linux 編譯出來(lái)的是 .o,.a,.so 這樣的文件。它們之間并不能通用。所以一份源代碼要在不同的電腦上運(yùn)行需要重新編譯才能得到對(duì)應(yīng)的可執(zhí)行文件。

Java的編譯運(yùn)行方式

Java 和 C 語(yǔ)言不同,開(kāi)發(fā)者用 Java 寫(xiě)成 java 文件,使用 Java 編譯器編譯后可以得到 java 的 class 文件(這種文件又叫做 Java 字節(jié)碼文件,字節(jié)碼文件類(lèi)似于機(jī)器碼,但機(jī)器碼直接在 CPU 上運(yùn)行,而字節(jié)碼在 Java 虛擬機(jī)上運(yùn)行)。然后將 class 文件放在相應(yīng)系統(tǒng)的虛擬機(jī)上進(jìn)行運(yùn)行。不同的電腦雖然操作系統(tǒng)不同,CPU 也不同,但是它們安裝的 Java 虛擬機(jī)為 Java 代碼提供了統(tǒng)一的接口。只要目標(biāo)機(jī)器可以安裝 Java 虛擬機(jī),Java 的 class 文件就可以在目標(biāo)機(jī)器上運(yùn)行。

JavaScript等解釋型語(yǔ)言的運(yùn)行方式

JavaScript 與 Java 不同,Java 需要將源代碼編譯后再放進(jìn) Java 虛擬機(jī)運(yùn)行,而 JavaScript 直接將源代碼放進(jìn) JavaScript 解釋器運(yùn)行。這樣的方式也讓 JavaScript 的可移植性變得十分強(qiáng)大。不過(guò)因?yàn)?JavaScript 沒(méi)有沒(méi)有經(jīng)歷過(guò)編譯,所以在運(yùn)行 JavaScript 代碼的時(shí)候解釋器要承擔(dān)額外的工作而導(dǎo)致效率變低。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“C語(yǔ)言、Java、JavaScript的編譯運(yùn)行方式是什么”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI