導航:首頁 > 源碼編譯 > 如何保證一次編譯多次運行

如何保證一次編譯多次運行

發布時間:2022-05-28 10:19:54

① Python同一個程序只需一次編譯,即可重復執行

咨詢記錄 · 回答於2021-12-01

② 哪些特性使得「一次編譯,到處運行」成為可能

  1. 虛擬機和位元組碼

  2. 標准API庫。

首先程序不能處處運行的原因在兩處,一個是CPU,一個是系統。CPU因為機器碼不同的緣故,導致無法通用,解決辦法,自己製作虛擬機,虛擬機運行位元組碼的方式,位元組碼可以認為是虛擬機的機器碼(.net的虛擬機叫運行時其實道理一樣)。。。如果編譯成位元組碼,那麼就能在虛擬機上運行,不管他是什麼CPU,只要有運行位元組碼的虛擬機就OK。。。。

系統問題,系統不同系統內核和API不同,解決辦法,標准API庫,不同的系統的內核對象其實大致原理和功能相似只是實現不同,將API標准化為比如java API等等,問題被解決。。

但「一次編譯,到處運行」只是個理想,幾乎從來沒有真正這么用過,。最主要還是API標准化幾乎讓這種事成為不可能。。。最簡單的比如用手機打電話的功能,移植到PC上,PC根本沒有這個功能,當然這是個極端的例子,到什麼地方做什麼事,統一根本無意義,只會帶來兼容性麻煩。。。

③ java的"一次編譯,到處運行"的機制是如何實現的

JVM是一個java虛擬機,所謂的java虛擬機就是和普通的虛擬機一樣,擁有自己的CPU,RAM之類的。我們所使用的操作系統是Windows的操作系統,Windows操作系統支持的可執行文件是EXE文件,也就是說在Windows的操作系統上只有EXE的文件是可以直接被操作系統解釋為底層機器語言並進行運行的。而java虛擬機可以支持的是.class的可執行文件,在java的虛擬機中遇到.class的文件就可以直接翻譯成java虛擬機所能是別的底層機器語言並進行執行。這就是JVM的機制,正是因為java的這種機制才實現了java的跨平台,在不同的平台上安裝能夠在相應平台上運行的虛擬機,然後在java虛擬機中運行java的源程序,「一次編譯,多次執行」就此實現了。
所以java的跨平台是離不開虛擬機的支持的。虛擬機充當著java源程序和操作系統之間的中間,不同的操作系統只需要尋找相應的中介就可以實現在不同的操作系統上運行。而java的編譯只是吧.java文件編譯為.class位元組碼文件而已,然後把位元組碼交給虛擬機去執行。
虛擬機在執行的時候是讀一句位元組碼文件人後解釋一句給操作系統聽,這就是為什麼java是解釋型的語言。
所謂的編譯型的語言是指這種語言被編譯之後生成的是可以直接供操作系統執行的010101文件,像C,C++都是編譯型的,java因為中間有JVM這么個東西所以是解釋型的。

④ Java語言是如何做到可移植性強、跨平台、「一次編譯到處運行」的呢

因為java代碼是運行在JVM上的,不同的平台有不同的JVM,如Windows和Mac上的運行同一款游戲,他們的實現方式肯定不一樣,但你都能讀取游戲的存檔文件。你不需要知道JVM在不同平台的實現方式,但他們解析java的class文件是一樣的邏輯,就是這樣java實現跨平台的。

⑤ java如何實現一次編譯到處運行

  1. Java編程語言,即語法。

  2. Java文件格式,即各種文件夾、文件的後綴。

  3. Java虛擬機(JVM),即處理*.class文件的解釋器。

  4. Java應用程序介面(Java API)。

⑥ JAVA一次編譯,處處運行原理(考試用的)

核心是java一次編譯的結果是生成一種java虛擬機可以執行的.class文件。而只要裝有java虛擬機的電腦就可以跑.class文件。基本上所有的操作系統都有它支持的java虛擬機,所以JAVA一次編譯,處處運行。

⑦ 如何理解Java「一次編譯到處運行」的特性

簡單地說Java的跨平台性就是指,編譯後的Java程序可直接在不同的平台上運行而不用重新編譯,這一特性使得Java隨著Web應用的普及而迅速普及起來。而Java的跨平台性是如何實現的呢?這就要理解Java虛擬機和位元組碼的概念。
實際上,編譯後的Java代碼並不是傳統的二進制代碼(如Windows下的.exe文件),而是Java位元組碼,這種位元組碼文件是不能直接在操作系統上執行的。要想在一個操作系統上運行一個Java程序必須有一個中間環節來負責將Java位元組碼解釋成二進制碼,這個中間環節就是Java虛擬機(簡稱JVM)。由於目前大多數操作系統已經實現了JVM,所以Java輕松實現跨平台性。
這是之前我在黑馬程序員培訓Java時候,老師講解的,感覺老師講的很好,分享給你,你要是學Java,推薦系統學習,去黑馬程序員。

⑧ 關於編程語言 一次編譯 處處運行問題

java的這個特性也是做了一些犧牲的,在效率方面。這種解釋性的語言,第一次編譯為位元組碼,運行的時候,逐條地編譯為本地代碼執行,效率肯定不及編譯型語言。
編譯型的語言,雖然沒有java的平台無關性,但是運行效率高,有其適用的場合,比如一般的伺服器端都是用的c或者c++去處理上百萬的客戶端請求。
java語言得益於現在硬體的飛速升級,以至於它的效率問題不是那麼低明顯了。

總之呢,在計算機的世界裡,有得必有失,不可能魚和熊掌兼得(或許有,不過很少)。
要麼時間換空間,要麼空間換時間,要麼就是像java這樣,犧牲運行效率達到Written Once, run anywhere!

⑨ 想讓c語言的編寫的程序運行一次,還可以運行第二次

char a;
while(a!='E')
{
printf("輸入大寫字母E退出!\n");
scanf("%c",&a)
}
把你程序放在這樣的循環體內,就可以實現多次運行,直到輸入字元E結束;

⑩ 用C語言編了個程序,怎樣才能讓它在運行窗口中多次運行呢

#include<stdio.h>
int main()
{
while(1) //設置一個死循環,使程序重復運行
{
system("cls"); //清屏,清除窗口上之前的輸出
int a,b;
printf("請輸入兩個加數:");
scanf("%d%d",&a,&b);
printf("兩數之和為%d",a+b);
getch(); //按任意鍵從頭開始
}
}

閱讀全文

與如何保證一次編譯多次運行相關的資料

熱點內容
貨拉拉app在哪裡選收藏司機 瀏覽:541
如何從安卓轉移照片到ipad 瀏覽:494
馬士兵java全集 瀏覽:89
農行APP未付款訂單怎麼付 瀏覽:154
生成編譯 瀏覽:591
聯通河南伺服器dns地址 瀏覽:904
如何更改應用加密的畫面 瀏覽:815
河道斷面圖演算法 瀏覽:177
java文件夾監控 瀏覽:352
wapp管理系統源碼 瀏覽:274
我的世界伺服器進去如何從成員調成管理員 瀏覽:888
汽車壓縮機用什麼機油好 瀏覽:838
phpexcel文件上傳 瀏覽:252
如何靜音手機的某個app 瀏覽:889
半導體工藝pdf 瀏覽:782
命令和意願的一致才不會掉鏈 瀏覽:657
設計模式java裝飾模式 瀏覽:694
戀聽app哪裡下載 瀏覽:709
金鏟鏟之戰為什麼一直伺服器滿 瀏覽:74
安卓手機如何像蘋果一樣app資源庫 瀏覽:129