鍍金池/ 教程/ Java/ Hello Java程序的內(nèi)部細(xì)節(jié)
Java for循環(huán)
Java接口
Java是什么?
Java命名約定
java中方法重載和方法重寫的區(qū)別
Java運(yùn)算符
Java抽象類
Java快速入門
Java實(shí)例初始化程序塊
Java靜態(tài)綁定和動(dòng)態(tài)綁定
Java do-while循環(huán)
Java對(duì)象克隆
Java Object類
Java聚合
Java繼承
Java this關(guān)鍵字
Java虛擬機(jī)內(nèi)部體系結(jié)構(gòu)
Java構(gòu)造器(構(gòu)造方法)
Eclipse安裝和配置
Java多態(tài)
Java方法重載
Java while循環(huán)
Java教程
Java按值調(diào)用和引用調(diào)用
Java strictfp關(guān)鍵字
Java封裝
Java語(yǔ)言特點(diǎn)
Java數(shù)組
Java instanceof運(yùn)算符
Java包裝類
Java命令行參數(shù)
Java包
Java面向?qū)ο螅∣OP)概念
簡(jiǎn)單Java程序
Java基礎(chǔ)實(shí)例程序
Java對(duì)象和類
Java continue語(yǔ)句
Java抽象類和接口的區(qū)別
C++ VS Java比較
Java if/else語(yǔ)句
Java switch語(yǔ)句
Java歷史
Java變量和數(shù)據(jù)類型
安裝Java環(huán)境(Linux)
Java JDK安裝和配置
Hello Java程序的內(nèi)部細(xì)節(jié)
Java break語(yǔ)句
Java方法重寫
Java Unicode編碼系統(tǒng)
怎么樣開(kāi)始學(xué)習(xí)Java編程?
對(duì)象和類之間的區(qū)別
Java訪問(wèn)修飾符
Java super關(guān)鍵字
Java注釋
JDK,JRE和JVM之間的區(qū)別
Java final關(guān)鍵字
Java static關(guān)鍵字

Hello Java程序的內(nèi)部細(xì)節(jié)

在前面的教程中,我們已經(jīng)了解了第一個(gè)程序,如何編譯以及如何運(yùn)行第一個(gè)java程序。 這里,我們將了解和學(xué)習(xí)在編譯和運(yùn)行java程序時(shí)編譯器和解釋器發(fā)生什么。此外,我們將看到一些第一個(gè)程序中的一些問(wèn)題。

編譯時(shí)會(huì)發(fā)生什么?

在編譯時(shí),java文件由Java Compiler編譯(它不與操作系統(tǒng)交互),并將java代碼轉(zhuǎn)換為字節(jié)碼,如下圖中所示 -

運(yùn)行時(shí)會(huì)發(fā)生什么?

在運(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è)類嗎?

這是可以的,如下圖所示: