原始碼和位元組碼的區別
當我們開始學習Java時,經常會遇到原始碼和位元組碼這兩個術語。程式設計師編寫Java程式碼時,其形式是機器無法理解的。此程式碼被稱為原始碼,易於人類閱讀和修改,但機器無法理解。因此,在執行程式碼之前,我們需要將其轉換為機器可讀的格式,稱為機器碼。但是,Java首先將原始碼轉換為稱為位元組碼的中間程式碼,然後再轉換為機器碼。讓我們討論一下Java中原始碼和位元組碼的區別。
原始碼與位元組碼
原始碼
它是程式設計師使用程式語言(如Java、Python、C++等)編寫的原始程式碼。原始碼包含指令、語句、變數、註釋和其他構成完整程式的元素。此程式碼易於人類閱讀和修改,但計算機無法直接理解。Java程式語言原始碼的副檔名為“.java”。
這是一個Java原始碼示例:
示例
public class Example {
public static void main(String[] args) {
System.out.println("Tutorialspoint Welcomes you!!");
}
}
輸出
Tutorialspoint Welcomes you!!
位元組碼
它是原始碼成功編譯後生成的中間程式碼。此程式碼不是由人類編寫的,而是由Java虛擬機器內部的Javac編譯器生成的。它是一種中間級程式碼,包含二進位制、十六進位制或宏指令。我們需要JVM,因為位元組碼也不能被計算機直接執行,但它可以被這個虛擬機器處理,虛擬機器將其轉換為機器碼。
由於這種可移植的位元組碼,Java程式語言是平臺無關的。一旦Java原始碼被Javac編譯器編譯,它就可以在任何安裝了Java虛擬機器的系統上執行。
以下快照顯示了Javac編譯器生成的先前示例程式的位元組碼。
Java程式語言位元組碼的副檔名為“.class”。
原始碼和位元組碼的區別
下表總結了上述討論中原始碼和位元組碼的區別:
原始碼 |
位元組碼 |
|---|---|
由程式設計師編寫。 |
由Javac編譯器生成。 |
人類可以閱讀和理解程式碼。 |
Java虛擬機器可以讀取和理解。 |
它是使用程式語言以人類可讀格式編寫的一組指令。 |
它是使用虛擬機器以機器可讀格式編寫的一組指令。 |
原始碼需要在執行前轉換為位元組碼。 |
位元組碼需要在執行前轉換為機器碼。 |
它是一種高階語言。 |
它是原始碼和機器碼之間的中間語言。 |
原始碼可以包含指令、語句、變數和註釋。 |
位元組碼可以包含二進位制、十六進位制或宏指令。 |
結論
在Java中,原始碼和位元組碼是機器指令的不同表示級別。Java位元組碼是由Javac編譯器編譯的Java原始碼的中間表示,而原始碼是由程式設計師使用高階語言編寫的原始程式碼。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP