Java是一種面向?qū)ο蟮木幊陶Z言,它的源文件通常以“.java”為拓展名,而編譯后的文件則以“.class”為拓展名。這兩種文件的拓展名不同,主要是因?yàn)樗鼈兊挠猛静煌?/p>
Java源文件是程序員編寫Java程序的原始文件。源文件中包含了Java代碼,它們通常被解釋器稱為“純文本文件”,因?yàn)樗鼈冎皇呛唵蔚奈谋疚募渲械奈谋景薐ava編程語言的代碼。為了編譯這些源文件,我們需要通過Java編譯器將其轉(zhuǎn)化為可以被計(jì)算機(jī)執(zhí)行的二進(jìn)制代碼。編譯器會(huì)將源代碼中的Java語法轉(zhuǎn)換為字節(jié)碼,然后將其保存在以“.class”為拓展名的二進(jìn)制文件中。
Java編譯器是一種特殊的程序,用于將Java源代碼轉(zhuǎn)換為機(jī)器可以理解的字節(jié)碼。它檢查源代碼文件中是否存在語法錯(cuò)誤,并使用Java虛擬機(jī)(JVM)所識(shí)別的編碼規(guī)則來解析源代碼中的Java語句。如果代碼中存在錯(cuò)誤,編譯器將提示錯(cuò)誤信息,直到源代碼通過編譯為止。當(dāng)編譯器成功完成所有轉(zhuǎn)換后,它將生成一個(gè)以“.class”為拓展名的二進(jìn)制文件,其中包含了Java程序的字節(jié)碼。
Java的編譯器和解釋器(JVM)是分開的,這就是為什么Java源文件和編譯后的文件都有不同的拓展名的主要原因。在許多編程語言中,源代碼和二進(jìn)制代碼都可以使用同樣的拓展名,例如C語言的“.c”和“.o”拓展名。但是,由于Java需要先將源代碼編譯成二進(jìn)制文件,然后才能從JVM中解釋并執(zhí)行,所以這兩個(gè)文件都需要不同的拓展名。
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } }