java 和.class 之間的區別| D棧
文章推薦指數: 80 %
本文討論Java 中.java 和.class 副檔名之間的區別以及簡單的Java 程式如何執行。
Java貼士
如何在Java中以十六進位制字串轉換位元組陣列
如何在Java中執行字串到字串陣列的轉換
如何在Java中將整型int轉換為字元char
如何在Java中從檔案中刪除換行符
如何在Java中按日期對ArrayList中的物件進行排序
如何在Java中比較兩個日期
如何在Java中為日期增加一天
如何在Java中連線兩個陣列
reportthisad
貼士文章
Java貼士
.java和.class之間的區別
用Java編寫程式的基礎知識
Java中的.java檔案
Java中的.class檔案
.java和.class檔案之間的差異
結論
Java是一種獨立於平臺的程式語言。
它涉及兩步執行過程,而不是像C語言那樣通常的一步編譯。
第一步執行使用獨立於作業系統的編譯器進行。
第二步執行在虛擬機器的幫助下進行,也稱為JVM或Java虛擬機器。
在兩步執行期間,副檔名為.java和.class的檔案會形成。
本文將介紹.java和.class檔案之間的基本區別。
用Java編寫程式的基礎知識
要理解.java和.class檔案的概念,必須知道Java程式是如何執行的。
讓我們以下面的程式碼為例。
publicclassDemoProgram{
/*ThisisademoJavaprogramthatwillprint'HelloJava'astheoutput*/
publicstaticvoidmain(String[]args){
System.out.println("HelloJava");
}
}
請按照以下步驟執行此程式。
在文字編輯器中編寫上述程式碼。
然後,將檔案儲存為DemoProgram.java。
請注意,檔名應與類名相同。
使用儲存此檔案的目錄的路徑開啟命令提示符視窗。
鍵入此命令-javacDemoProgram.java。
按回車鍵。
javac命令編譯Java程式。
它將.java檔案作為輸入並將其更改為位元組碼檔案。
這一步開始編譯程式碼。
一旦編譯成功且沒有錯誤,游標將移動到下一行。
C:\Users\PC>javacDemoProgram.java
然後,輸入這個命令-javaDemoJava。
我們在這裡不使用.java的檔名。
原因是java命令將位元組碼作為輸入,並根據原始碼給出最終輸出。
簡單地說,這次DemoProgram不是一個java檔案而是一個位元組碼。
C:\Users\PC>javaDemoProgram
上面的命令使程式執行,你可以看到輸出為:
HelloJava
{{/%step%}}风水2023年的颜色提示fsPleaseenableJavaScript风水2023年的颜色提示fs
在進一步移動之前,請注意以下幾點:
原始碼是程式設計師用任何程式語言編寫的程式碼。
我們手動編寫它以解決任何問題。
在Java中,每個程式都構成一個類。
根據編寫程式碼的目的,一個程式中可以有多個類。
就像上面的例子一樣,只有一個名為DemoProgram的類。
我們在上面的部分中建立了一個文字檔案,並使用副檔名.java儲存它。
這是通過編譯器的原始檔。
這會將原始碼編碼為與機器無關的編碼。
這稱為Bytecode。
如前所述,一個程式可能有一個或多個類。
因此,在編碼過程中,每個類的內容分別放在不同的.class檔案中。
然後這些檔案可以在任何系統上執行,因為它們獨立於機器或作業系統。
你是否看到.java和.class檔案何時出現?當我們使用此副檔名儲存原始碼時,就會形成.java檔案。
.class檔案在編譯時形成。
Java中的.java檔案
.java檔案只是Java中的原始碼本身。
簡單地說,就是包含我們編寫的程式碼的檔案。
我們可以使用簡單的文字編輯器或任何IDE來編寫Java程式。
無論我們使用什麼,我們都會儲存我們編寫的程式或原始碼。
為了儲存Java原始碼檔案,我們使用.java副檔名。
每種語言都有不同的儲存原始碼檔案的約定。
與C語言一樣,原始碼檔案具有.c副檔名;在python中,它是.py,而在C++中,我們使用.cpp。
Java中的.class檔案
.class檔案是包含原始碼中類的位元組碼的檔案。
該檔案在編譯時形成。
當我們提到Java是一種平臺無關的語言時,就是因為這些類檔案。
這些檔案可以在任何作業系統或機器上執行。
.class檔案可以被視為已編譯的.java檔案。
它是在JVM(Java虛擬機器)上執行的檔案。
.class檔案的數量不一定是一個。
它等於原始碼具有的類數,因為每個類在編譯後進入不同的.class檔案。
示例1:
publicclassDemoProgram{
/*ThisisademoJavaprogramthatwillprint'HelloJava'astheoutput*/
publicstaticvoidmain(String[]args){
System.out.println("HelloJava");
}
}
輸出:
C:\Users\PC>javacDemoProgram.java
C:\Users\PC>javaDemoProgram
HelloJava
在這段程式碼中,只有一個類DemoProgram。
因此,由於編譯,我們只得到一個.class檔案DemoProgram。
現在,讓我們看另一個例子。
示例2:
//Aclass
classTestCase
{
publicstaticvoidmain(String[]args)
{
System.out.println("Anexamplewithmultipleclasses.");
}
}
//Anotherclass
classDemo
{
publicstaticvoidmain(String[]args)
{
System.out.println("Thisisanexample.");
}
}
//Onemoreclass
classExample
{
publicstaticvoidmain(String[]args)
{
System.out.println("Itcontainsthreeclasses.");
}
}
編譯檔案:
C:\Users\PC>javacExample.java
編譯後,我們得到的不是一個而是三個.class檔案作為輸出。
因此,你可以看到.class檔案的數量與原始碼中類的數量一樣多。
我們可以分別執行每個.class檔案,如下所示:
C:\Users\PC>javaTestCase
Anexamplewithmultipleclasses.
C:\Users\PC>javaDemo
Thisisanexample.
C:\Users\PC>javaExample
Itcontainsthreeclasses.
.java和.class檔案之間的差異
下表總結了這兩種型別的檔案之間的區別。
.java檔案
.class檔案
它包含Java原始碼。
它包含Java位元組程式碼。
程式設計師或個人編寫它。
它是編譯.java檔案的結果。
它是人類可讀的。
它在JVM中用於執行程式。
它在.class檔案之前形成。
沒有這個,類檔案就不能形成。
它總是在.java檔案之後形成。
我們可以在任何文字編輯器或JavaIDE上編寫它。
我們可以在任何作業系統或機器上執行它。
結論
這篇文章教會了我們.java檔案和.class檔案之間的主要區別。
我們還看到了Java程式如何在機器級別和使用者級別上執行。
這個概念是Java程式設計的基礎,理解它對於有效地執行Java程式和應用程式很重要。
相關文章-JavaFile
如何在Java中從檔案中刪除換行符
Java中的檔案選擇器
在Java中建立不存在的檔案
在Java中建立臨時檔案
相關文章-JavaClass
如何在Java中從檔案中刪除換行符
Java中的檔案選擇器
在Java中建立不存在的檔案
在Java中建立臨時檔案
防止Java中的OrphanedCase錯誤JavaNIO包介紹
reportthisad
x
延伸文章資訊
- 1檔案副檔名CLASS : Java Class File 是什麼? 如何開啟?
檔案副檔名CLASS是一種由Oracle開發的Java Class File。 支援的作業系統和可以開啟該檔案類型的相關軟體或應用程式. Windows, Oracle Java Runtime...
- 22.3. 第一個Java 程式
這也就是您必須讓「檔案總管」顯示副檔名的原因。 主檔名與類別名稱必須一致. Java 程式的類別名稱是指"class" 關鍵字(Keyword)後的名稱 ...
- 3Java類檔案- 維基百科,自由的百科全書
Java類別檔案是一個包含Java位元組碼的可由Java虛擬機器執行的檔案(副檔名為.class)。Java類別檔案是由Java編譯器編譯包含Java類別的用Java語言編寫的原始檔(.java...
- 4執行java的class檔案方法詳解 - 程式前沿
一、執行class檔案執行帶main方法的class檔案,命令列為: java 注意:CLASS檔名不要帶檔案字尾.class 例如: 複製程式碼程式碼如下: java Test 如果 ...
- 5JVM真香系列:.java檔案到.class檔案_osc_5p8bxoq2 - 古詩詞庫
javap 是Java class檔案分解器,可以反編譯(即對 javac 編譯的檔案進行反編譯),也可以檢視 java 編譯器生成的位元組碼。 新建一個 User.java 原始檔, ...