iT邦幫忙

0

Java 程式是如何被執行的呢?

CJR 2024-08-17 00:09:56569 瀏覽
  • 分享至 

  • xImage
  •  

小弟寫了Python約3年的時間,這週開始學習Java,想說來詳讀一下Java中很重要的幾個概念:JDK、JRE和JVM。

https://ithelp.ithome.com.tw/upload/images/20240817/20129078STeJCw7zN1.png

Java是高階語言,要讓機器看得懂,就要先經過一系列的編譯。但是,Java在編譯時,不會直接編譯成機器看得懂的machine code,而是先編譯成bytecode。而這個中介的bytecode與JVM的組合,正是為什麼Java能達到WORA(Write once, run anywhere)的原因!

先從JDK講起,JDK全名是Java Development Kit,他涵蓋所有開發執行Java程式所需要的東西,這包含了編譯器(javac)、Java API函式庫等其他工具。而JRE(Java Runtime Environment)則只包含Java程式的執行環境,。這就表示,一位工程師要開發Java程式,需要安裝JDK,而執行已經編譯好的Java應用程式則只需要JRE。

但是編譯成bytecode的檔案,其實還不能直接由機器執行,而是要先由JVM進行翻譯。每個作業系統會有自己相對應的JVM,它會將bytecode轉換成作業系統讀得懂的machine code(JVM通常會由Interpreter逐行解釋bytecode,然後對頻繁執行的程式碼使用JIT編譯來提高效能),讓作業系統可以執行。也就是說,對Java程式而言,它只認識一種作業系統,叫JVM,這也是為什麼Java程式可以跨平台的原因。

如果有講錯的地方,還請各位IT大大指正!


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言