亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

第一個 Java 程序

本節我們將以Windows操作系統為例,編寫并執行第一個Java程序。在這之前,請確保你的操作系統上已經安裝了JDK

1. 編譯程序

大家可能有個疑問,為什么需要編譯程序呢?計算機不能直接執行我們編寫的源代碼嗎?

這是由于計算機只能識別由0和1組成的二進制代碼。需要通過編譯將源代碼轉換為計算機認識的二進制代碼。

1.1 Java 中的編譯

在 Java 中,程序不是直接被編譯為可執行文件,而是被編譯為字節碼文件, JVM(Java虛擬機)在運行時執行字節碼文件。當我們使用 javac 編譯器時,Java 源代碼文件被編譯為字節碼文件,字節碼文件以擴展名 .class 的形式保存在磁盤上。當程序運行時,字節碼文件將被轉換為機器代碼,并在內存中執行。

總的來說,Java 源代碼需要被“轉換”兩次才能被計算機執行:

  1. Java 源代碼被編譯為字節碼:由 javac 前端編譯器完成;
  2. 字節碼被編譯為機器碼:由 JVM 的執行引擎完成。

下圖描述了一個Java程序從編寫編譯,再到執行的步驟:

1.2 快速執行一個程序

1.2.1 準備工作

為了確保我們人生中第一個 Java 程序能夠順利執行,請首先確認你已經完成了下面兩件事情:

  1. 已經在你的電腦上成功安裝 JDK;
  2. 有一個文本編輯器。(如 Windows 的記事本,Unix 的 vim)。

1.2.2 編寫源代碼

新建一個文本,輸入如下內容,將其命名為 HelloWorld.java并保存

實例演示
預覽 復制
復制成功!
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}
運行案例 點擊 "運行案例" 可查看在線運行效果

Tips

  • 文件名必須與類名同名(類名就是上面第一行代碼中class后面的HelloWorld),并且擴展名為 .java,文件名和類名都區分大小寫,所以請確保文件名和類名大小寫保持一致;
  • 類的命名約定以大寫字母開頭;
  • 上述代碼中的所有符號,請使用英文半角;
  • 別忽略了代碼第三行結尾的分號;。

下面為實操中的截圖。

打開記事本,輸入源代碼:

點擊文件 -> 保存,將文件保存到磁盤(此處保存在桌面上),注意:這里要將文件名命名為HelloWorld.java,保存類型選擇所有文件,編碼選擇UTF-8

1.2.3 編譯后執行

現在,打開你常用的命令行工具。(如 Windows 上的命令提示符、MacOS 上的終端),并進入你剛剛保存 Java 源代碼的目錄。

Windows搜索欄中輸入cmd即可打開:

使用cd命令,進入到我們剛剛保存源代碼的目錄(即進入到桌面目錄cd Desktop),使用dir命令,查看目錄下內容:

使用javac命令編譯源代碼:

javac HelloWorld.java

執行編譯命令后,你會發現同一目錄下會生成一個HelloWorld.class文件,這個HelloWorld.class就是我們說的字節碼文件。接下來就是通過 JVM 執行字節碼文件了,輸入下面的命令:

java HelloWorld

如果一切正常,你會看到屏幕上輸出如下內容:

祝賀你!成功執行了第一個 Java 程序!

Tips

  • javac 是編譯器,而 java 是虛擬機,先使用 javac 編譯器編譯源代碼,再使用java虛擬機執行字節碼文件。這就是我們上面提到的 java 源代碼被轉換兩次到執行的過程。
  • java 命令后面的參數是類名。換句話說,我們只需要給虛擬機傳遞類名作為參數即可,虛擬機會自動查找對應的以.class為擴展名的文件并且執行。

2. 理解程序

我們現在對上面的 HelloWorld.java 代碼進行解析:

public class HelloWorld {
		...
}

這段代碼表示我們定義了一個公開類,類名為 HelloWorld,按照約定類名首字母要大寫。

public 表示這個類是公開的(至于什么是公開的,我們后面再講),class顧名思義,就是, publicclass都是 Java 中的關鍵字,必須小寫。 花括號{} 中間為類的定義。

下面我們來看下花括號中間的 main()方法代碼:

    public static void main(String[] args) {
        ...
    }

這段代碼表示我們定義了一個入口方法,注意:入口方法是 Java 程序執行的起點。

publicstatic分別表示方法是公開的、靜態的,void是方法的返回類型,main后面的括號() 用來將方法的參數括起來,String[]是參數的類型,args是參數的名稱。
當然,剛剛對于代碼的解釋略顯生澀,作為初學者無需深究每一項的含義。但有一個點請務必牢記:Java 規定,某個類定義的public static void main(String[] args)是Java程序的固定入口方法。

在方法內部,有一行代碼:

        System.out.println("Hello World!");

這行代碼的意義就是將Hello World這一串字符打印在屏幕上。你可以嘗試修改這塊內容,將代碼中的Hello World!,替換為其他內容,例如:

實例演示
預覽 復制
復制成功!
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("我愛慕課網!");
    }
}
運行案例 點擊 "運行案例" 可查看在線運行效果

保存源代碼,打開命令行,重新編譯執行,屏幕上輸出的內容將會被成功替換。

3. 小結

本小節我們一起完成了第一個 Java 程序的執行,在這個過程中,我們了解了編譯相關的知識,知道了使用 javac命令,可以將一個.java擴展名的源代碼文件編譯成.class擴展名的字節碼文件,使用 java 命令,可以執行字節碼文件。我們也對程序的基礎語法有了大致的了解。如果你對程序的理解還有困惑,也不必擔心,在后面的章節中,我們將具體學習 Java 的基礎語法,隨著知識的累積,你也將更加游刃有余地閱讀、編寫程序。