在前面的教程中,我們已經(jīng)了解了第一個(gè)程序,如何編譯以及如何運(yùn)行第一個(gè)java程序。 這里,我們將了解和學(xué)習(xí)在編譯和運(yùn)行java程序時(shí)編譯器和解釋器發(fā)生什么。此外,我們將看到一些第一個(gè)程序中的一些問(wèn)題。
在編譯時(shí),java文件由Java Compiler編譯(它不與操作系統(tǒng)交互),并將java代碼轉(zhuǎn)換為字節(jié)碼,如下圖中所示 -
在運(yùn)行時(shí),執(zhí)行以下步驟:
類加載器(Classloader):是用于加載類文件的JVM的子系統(tǒng)。
字節(jié)碼校驗(yàn)器(Bytecode Verifier):檢查代碼片段中是否存在違反對(duì)象訪問(wèn)權(quán)限的非法代碼。
解釋器(Interpreter):讀取字節(jié)碼流然后執(zhí)行指令。
Q)可以使用其他名稱而不是類名來(lái)保存java源文件?
如果類不是使用public
修辭符,這是可以的。 在下圖中解釋:
編譯:
javac Hard.java
執(zhí)行:
java Simple
提示:如果使用
public class Simple{}
這樣來(lái)定義類是不可以的。
Q)能在一個(gè)java源文件中有多個(gè)類嗎?
這是可以的,如下圖所示: