認識 Java

圖片來源

起源

最初是由 Unix 作業系統下的伺服器廠商,昇陽公司所研發的一套跨平台物件導向程式語言
以 C++ 為基礎架構,更改了許多 C++ 的複雜之處,最終命名為我們熟悉的 Java。

後來被甲骨文公司 (Oracle) 併購。

目的

  • 以物件導向為原則的設計模式。
  • 允許同個程式在不同作業系統上執行。
  • 內建對電腦網路的支援。
  • 改善 C++ 的複雜之處,使其容易使用。

特性

跨平台的特性,強調「一次編寫,到處執行」,使用 Java 編寫的程式可以在編譯後不用經過任何更改,就能在任何裝置上運行。

Java 語言與其他程式語言不同的地方在於,編譯 (Compile) 後產生的結果二元碼,不能直接在作業系統上運行,必須透過 Java Virtual Machine (JVM) 轉換成該系統能夠處理的目的碼後才能運行。

執行環境

Java 的運行環境是透過下列元件組成:

Java Runtime Environment (JRE)

提供作業系統在執行 Java 應用程式所需的軟體。

Java Virtual Machine (JVM)

用來將二元碼 (ByteCode) 轉換成系統看得懂的目的碼的軟體。

Java Development Kit (JDK)

Java 開發套件 (JDK),原本名為 Software Development Kit (SDK),可以理解成是裡面有所需開發工具的套件包。

常見的,像是 OpenJDK 21 則表示使用 Java SE 21。

建置開發環境

事前準備

  1. 安裝 Docker | Docker: Accelerated Container Application Development
  2. 使用 VSCode + WSL
  3. 安裝 Dev Container 擴充套件 | Dev Containers - Visual Studio Marketplace

環境套件工具

  • Java: OpenJDK 17
  • Maven: 3.9.x or high

新增開發用資料夾

在 WSL 環境裡新增一個資料夾並進入 VSCode IDE

1
2
mkdir JavaEdu && cd JavaEdu
code .

新增 Dev Container 設定檔

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/ubuntu
{
"name": "Java OpenJDK-17 Devcontainer (Ubuntu)",
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
"image": "mcr.microsoft.com/devcontainers/base:jammy",
// Features to add to the dev container. More info: https://containers.dev/features.
"features": {
"ghcr.io/devcontainers/features/node:1": {},
"ghcr.io/devcontainers/features/java:1": {
"version": "17",
"installMaven": "true",
"installGradle": "false"
}
},
"workspaceFolder": "/workspace",
"customizations": {
"vscode": {
"extensions": [
"vscjava.vscode-java-pack",
"vscjava.vscode-spring-initializr",
"vmware.vscode-spring-boot",
"vscjava.vscode-spring-boot-dashboard"
]
}
},
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
"remoteUser": "root"
}

如果還不知道 DevContainer 是什麼東西的話,可以先看 使用 WSL + DevContainer 進行程式開發

檢查 JDK & Maven 版本

檢查開發環境是否成功安裝 Java 與 Maven。

1
2
java -version
mvn -v

認識 Maven

Maven 是 Apache 旗下的產品,用來管理套件與自動化建構專案,透過 pom.xml 來管理專案。可以把它作為是整個專案的核心。

Maven 提供了標準的建構流程,包含測試、打包、部署等功能。

創建第一個專案

使用 Maven 創建第一個專案

在 VSCode 中執行 Ctrl + Shift + P 輸入 maven new project

選擇範本

剛開始練習,所以選擇 No Archetype 的基本專案就好。

Group ID

通常設定為組織的反向域名。

設定 Project Name

認識專案結構

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
├── pom.xml                        # Maven 專案的核心設定檔
├── src/ # 程式碼區塊
│ ├── main/ # 主區塊
│ │ ├── java/ # Java 原始程式碼檔案
│ │ │ └── com/ # 域名結構
│ │ │ └── raylon/ # 域名結構
│ │ │ └── Main.java # 主程式
│ │ └── resources/ # 資源檔案
│ └── test/ # 測試區塊
│ └── java/ # 存放單元測試和整合測試
└── target/ # ByteCode
├── classes/ # 存放編譯後的主程式 .class 檔
│ └── com/
│ └── raylon/
│ └── Main.class
└── test-classes/ # 存放編譯後的測試 .class 檔

這樣就創好專案了~ 接下來就是 Java 的基本語法介紹!!