前言:學習 Java 過程中掌握基礎概念至關重要,無論 J2SE、J2EE、J2ME 皆是如此。J2SE 是 Java 基石,歸納 30 條核心概念助理解語言精髓。
Java 概述
Java 主要應用於中介軟體開發——處理客戶端與伺服器間通訊技術。早期證實不適合 PC 應用開發,逐漸轉向手持裝置、網路資訊站、車載電腦開發。Java 特色在於執行時提供平台獨立性,同樣代碼可在 Windows、Solaris、Linux 運行。語法類似 C++,C/C++ 程式設計師易上手,且為徹底面向對象,擁有 GC (Garbage Collector) 垃圾回收機制防止記憶體洩漏。
Java 白皮書提出 11 項關鍵特性:
- 簡單:語法較 C++ 簡單,基礎解釋器與類庫約 40KB,加標準庫與執行緒支援約 125KB。
- 分散式:內建強大 TCP/IP 協議庫,應用程式可透過 URL 存取遠端物件,Servlet 機制使網路編程高效,主流 Web Server 均支援。
- 面向對象:重點在物件與介面,與 C++ 在多重繼承與原型模型上有別。
- 健壯:採安全指標模型,降低重寫記憶體與資料崩潰風險。
- 安全:針對網路分散系統設計,可構建防毒防攻擊系統,實證防毒表現優異。
- 架構中立:編譯產生架構中立目標檔格式,位元碼可在任何機器解釋執行。
- 可移植:基本資料類型大小與演算法嚴格規定,移植性佳。
- 多執行緒:處理多執行緒簡單,交由底層 OS 或執行緒庫完成,是伺服器端開發流行原因之一。
- Applet 與 Servlet:可在網頁執行的程式稱 Applet,需支援 Java 的瀏覽器,支援動態網頁。
核心基礎概念(節選)
- OOP 核心關注物件介面:如電腦銷售商不關心電源內部結構,只關心能否供電。程式由具屬性與行為的物件組成,物件間透過方法呼叫溝通,封裝資料提高復用率。
- 類別是模板藍圖:從類別建構物件即建立實例。
- 封裝:將資料與行為結合並隱藏實現細節,物件中的資料稱實例欄位。
- 繼承:擴展既有類別獲得新類別,所有類別最終繼承自
Object 根超類。
- 物件三大特性:Behavior(能做什麼)、State(施加方法時的反應)、Identity(區分標識),三者相互影響。
- 類別關係:use-a(依賴)、has-a(聚合)、is-a(繼承,子類擁有父類方法並可擴充)。
- 建構子:特殊方法,建構物件並初始化。特點:可多載、與類同名、無回傳值、必搭配
new 使用。
- 多載:同名方法參數不同,編譯器依參數選擇調用版本。
- 套件:組織類別群組,標準庫分為
java.lang、java.util、java.net 等層級結構。
- 繼承思想:在既有類別基礎上建構新類別,復用方法與欄位並可新增。
- 擴展類別:
class 子類 extends 基類,體現 is-a 關係。
- 多型:物件變數具有多型性,Java 不支援多重繼承。
- 動態繫結:調用物件方法機制,編譯期檢查類型與參數,
private/static/final 方法靜態繫結,執行期依實際物件類型動態繫結,使程式可擴展無需重編譯。
- final 類別:防止被繼承,不可擴展。
- 動態調用比靜態調用耗時較長。
- 抽象類別:含抽象方法的類別必須宣告
abstract,如 public abstract String getDescription()。
(原文內容較長,此處摘錄核心概念)