Java 入門指南 - 如何編譯與執行

我們先看到下面這張圖




原始碼 (source code) 就是我們寫程式 (program) 所用的 .java 檔案,原始碼需要先經過編譯器 (compiler) 編譯 (compile) 成位元組碼 (byte code) ,如下圖



藉由作業系統 (operating system) 啟動 Java 虛擬機器 (Java Virtual Machine, JVM) ,由 Java 虛擬機器呼叫指定類別 (class) 的 main() 方法 (method) ,實際執行 main() 中的程式碼,如下圖



由於 Java 程式是編譯成位元組碼,並由 Java 虛擬機器來執行,這構成 Java 跨平台的特性,因此編譯一次,便可以在裝有 Java 虛擬機器的硬體來執行 (write once, run anywhere) 。


我們提供的簡單範例的程式原始碼如下
// 宣告類別名稱
public class Demo { 
    // 宣告 main() 方法
    public static void main(String[] args) { 
        // 建立 Object 型態的物件
        Object o = new Object(); 
        
        // 於命令列印出訊息
        System.out.println();
        System.out.println(o.toString());
        System.out.println("↑↑ 上面是 Object 的字串形式");
        System.out.println();
        System.out.println("程式執行結束 ....");
        System.out.println();
    }
}

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:Demo.java
    功能:示範 Java 程式 
    作者:張凱慶
    時間:西元 2011 年 4 月 */


命令列編譯原始碼檔案使用命令 javac ,如下



編譯完成,相同目錄下會產生 Demo.class 檔案



然後要在命令列執行 Demo.class ,使用命令 java ,如下



此程式連續呼叫 System 類別 out 屬性 (field) 的 println() 方法六次, println() 需要字串 (string) 當參數 (parameter) ,然後再字串結尾會附加印出 '\n' ,這就是新行符號的跳脫字元,因此呼叫下一個 println() 的時候,會從最左邊開始印出字串訊息。如果沒有提供參數, println() 就只單純印出 '\n' ,也就是空白的一行。


這裡須注意,字串與字元 (character) 是不同的,字串是物件 (object) ,字元則屬於基本資料型態 (primitive data type) 之一,存取物件的變數 (variable) 為參考 (reference) ,基本資料型態則會直接儲存在變數之中。


接下來,我們來看看基本資料型態、物件與參考吧!


中英文術語對照
原始碼source code
程式program
編譯器compiler
作業系統operating system
Java 虛擬機器Java Virtual Machine, JVM
類別class
方法method
屬性field
字串string
參數parameter
字元character
物件object
基本資料型態primitive data type
參考reference


您可以繼續參考
基礎篇


相關目錄
回 Java 入門指南
回 Java 教材目錄
回首頁


參考資料
The JavaTM Tutorials: Getting Started
The JavaTM Tutorials: Learning the Java Language
The JavaTM Tutorials: Essential Classes
The Java Language Specification, Third Edition


本文於 2013 年 1 月訂正

5 則留言:

Unknown 提到...

可以分享嗎?

Kaiching Chang 提到...

當然可以分享呀 ^_^

Unknown 提到...

以javac編譯後產生了 .class檔, 但以java執行却顯示找不到或無法載入主要類別. 但在eclipse却可以執行. 不知是何原因.

jcrAron 提到...
作者已經移除這則留言。
jcrAron 提到...

再設定一次看看 java (檔名).java
再不行就用txt檔改java檔執行
((還有最好別關連到其他的java檔 會有些麻煩 至少我是