連驢子都看得懂的Java教學-01 甚麼是Java?

Java是現今企業常用的程式語言,可以被用來開發網頁、APP等等,主要特色包含:

  • 跨平台──「一次編寫,到處運行」
  • 強型別語言──強大的物件導向(OOP)與設計模式支援
  • 自動記憶體管理
  • 穩定的生態與企業級支援
  • 支援高效能與併發能力
    等等…不一一列出。

看不懂?沒關係,我一一慢慢講給你聽

跨平台──「一次編寫,到處運行」


跨平台,你可能以為是手機與網站都可以用就叫做跨平台,但Java的跨平台的意思遠遠不只如此。為了更好地說明Java的跨平台特性,我會先使用C++作為舉例,來讓你更好地理解跨平台的特性。你不必熟悉C++,但還是需要你有一點想像力。

一個C++的程式碼執行流程是這樣的:

預處理(Preprocessing) >> 編譯(Compilation) >> 組譯(Assembly) >> 連結(Linking) >> 載入與執行(Loading & Execution)

在編譯階段,C++程式碼會被轉換成組合語言(Assembly),接著在組譯階段轉換成目標碼(Object Code)。而所謂的目標碼就是根據你的使用平台不同(PC、APP…etc)而最佳化的低階語言程式碼,他比組合語言更接近機器語言,所謂的平台差別由此誕生。這麼做的好處是,最後的執行程式會是針對原生平台來說執行效率最好的程式碼、缺點就是,為確保最佳化,每當一個平台不同都要重新編譯過一次。
那Java也是這樣運作嗎? 不,並沒有。
一個Java的程式碼執行流程是這樣的:
Java程式碼被編譯成位元檔(bytecode),然後透過JVM(Java Virtual Machine)在不同平台上執行。這代表即使換到了另一個平台,程式碼可以不需要重新編譯,就能正常運作。這就是跨平台的意思。

強型別語言


這個特色我使用JS來舉例,這樣比較好理解。Javascript是一個弱型別的語言,比方說JS可以做到:

1
2
3
let num = 95;
num = 96;
num = "97"; // 這裡被轉成字串了

而Java做不到這件事,延伸第一點我們討論的Java執行流程,Java在編譯階段就已經先確定好每一個變數的型別,也就是說,如果我們後續想要把Java原先定義為數值型別的資料型態改為字串型態,就會直接爆出型別轉換錯誤,這一方面幫助了我們提早發現程式碼可能存在的問題。此外,Java的型別一開始就會先定義好。如下:

1
String str = "ABC";

自動記憶體管理

支援高效能與併發能力

這個我們之後再提,第一章就講這個太過分了。



最後我們來開始一個我們的最簡單的Java程式碼來讓新手入門。首先你需要的很簡單,下載Intellij[“https://www.jetbrains.com/idea/"]

Intellij IDEA是Java開發時經常會使用到的工具,相當值得學習,且有提供多種Plugin讓整體操作、使用者體驗都更好。

我這邊不展示教學了,因為其實一個個點選就會安裝完成,幾乎沒有甚麼特別需要留意的事物。

打開之後你會看到這樣的介面,點選「New Project」來開啟你的一個新專案。

Picture1

Picture2

接著在左側清單選擇Java做為開發專案模板,右側的Name代表你的專案名稱。然後值得留意的是下方有Build工具的選擇,主要分為Maven與Gradle,現在你只需要知道他是套件管理工具就好,可以先跳過。

再來是相當重要的JDK,JDK的全名是Java Software Development Kit(有人稱 Java SDK),他像是一個工具包,裡面包含了多種功能。還記得前面提到的Java程式碼的執行過程嗎? Java程式碼會透過Java編譯器(javac)編譯成bytecode,再交給JVM去執行,而這兩個工具都包含在JDK當中。

JDK裡面包含:

  • JRE(Java Runtime Environment) JDK 中包含 JRE,是 Java 程式的執行環境,包括:

    • JVM(Java Virtual Machine):負責將 .class 字節碼轉換為平台相關的機器指令。
    • 核心類庫(Core Libraries):如 java.lang、java.util、java.io 等,提供基本 API 支援。
  • 支援檔案與動態連結庫:如 .jar、.dll 或 .so 檔案。

  • Java 編譯器(javac) 將 .java 原始碼編譯成 .class 字節碼。

  • Java 解譯器(java) 執行 .class 檔案,透過 JVM 解譯成機器碼。

  • 除錯工具(jdb) 用於偵錯 Java 程式,支援斷點、變數觀察等功能。

  • 文件產生工具(javadoc) 根據原始碼中的註解產生 HTML 格式的 API 文件。

  • 打包工具(jar) 將多個 .class 檔案與資源打包成 .jar 檔案,便於部署與分發。

其他工具

  • javap:反編譯 .class 檔案,查看 bytecode。

  • jstat、jconsole:監控 JVM 執行狀況。

  • jshell:互動式 Java Shell,支援即時執行 Java 程式碼。

這些你不必都知道,你只要先知道java JDK裡面包含很多功能,而你只需要JDK就可以運行程式碼,先知道這樣就好了。

一開始你可能會沒有JDK,但別緊張,下拉選單可以選擇Download JDK來下載JDK,至於版本我建議直接先用最新的版本,各版本會有些差異,但是學習最新的對你不會有壞處。然後我們按下「Create」建立專案。

Picture3

你完成了,這就是一個基本的Java程式碼。主要Main.java檔案中包含了。

  • 名為Main的類別,雖然這個名稱可以自定義,但他只是要告訴你這是主程式所以叫做Main
  • 名為main()的方法,這部分是寫死的。

關於類別與方法之後會在描述,現在我只專注於告訴你這幾行做了什麼事。

System.out.printf、System.out.println 代表說使用了System套件的printf方法,功能是印入你輸入的這些字串。
for (int i = 1; i <= 5; i++) 則是跑了一個迴圈(loop),簡單來說就是把大括號裡面的程式碼執行五次,每一次i就會加1,所以底下會印出 i=1 i=2 i=3 i=4 i=5

到此第一個教學結束,在這個教學中你理解了

  • Java是什麼、他有什麼特色。
  • 怎麼下載,安裝Java
  • JDK是什麼、包含了哪些功能。
  • 怎麼建立一個專案。
  • 怎麼運行一個專案。

相信內容是很豐富的,那麼之後我會不定期更新,我們下次面吧


連驢子都看得懂的Java教學-01 甚麼是Java?
https://clark1945.github.io/2025/11/01/連驢子都看得懂的Java教學-01-甚麼是Java/
Author
Clark Liu
Posted on
November 1, 2025
Licensed under