首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

Java 語言誕生背景與核心特性深度解析:從 Oak 到企業級開發基石

     編輯:Java 程式設計入門

1.1 Java 語言的誕生脈絡與產業衝擊

從家電控制到網際網路標準

1991 年,Sun Microsystems 的 James Gosling 等人為了互動式電視、烤麵包機等嵌入式裝置開發了 Oak 語言。當時反應平平,直到 1994 年網際網路與 WWW 爆發式增長,Sun 重新定位 Oak 為網路程式語言,更名為 Java,並推出支援 Applet 的 HotJava 瀏覽器。1995 年獲《PC Magazine》評為「年度十大科技產品」,微軟、IBM、Netscape 等巨頭紛紛購買授權,比爾·蓋茨更讚譽其為「長久以來最傑出的程式設計語言」,並據此調整微軟戰略轉向網路中心運算。

產業界的高度評價

  • Sun 總裁 Scott McNealy:Java 為 Internet 開啟嶄新紀元。
  • WWW 之父 Berners-Lee:Java 將是電腦產業下一波浪潮。
  • 1996 年首屆 JavaOne 大會吸引 6,500 參與者,James Gosling 強調「Java 不只是 Applet,它能做任何事」。

應用前景廣泛

涵蓋物件導向應用開發、可視化計算、動態圖形/動畫、互動操作設計、Web/Intranet 系統管理、資料庫 SQL 整合等八大領域,被預言為網路上的「世界語」。

1.2 Java 十大核心特性 (白皮書定義)

特性核心說明
簡單性移除運算子多載、多重繼承等複雜概念;自動垃圾回收簡化記憶體管理;核心解釋器 + 基礎類庫僅約 215 KB,適合嵌入式裝置。
物件導向封裝狀態與行為,支援介面與單繼承,透過介面實現多型與鬆耦合。
分散式標準庫內建 TCP/IP、URL、Socket 支援,輕鬆存取網路資源。
健壯性編譯期與執行期雙重檢查;自動 GC 避免記憶體錯誤;例外處理機制強制開發者面對錯誤情境。
安全性無指標操作,記憶體存取受管控;類載入器隔離本地與網路代碼;安全管理員限制敏感操作。
架構中立編譯為平台無關的位元組碼,經 JVM 解釋執行,屏蔽硬體差異。
可移植性基本型別大小固定(int 永遠 32 位);編譯器本身用 Java 撰寫,運行時系統用 ANSI C 實現,自我宿主化。
解釋執行位元組碼攜帶豐富編譯期資訊,連結過程輕量快速。
高效能JIT (Just-In-Time) 編譯器可將熱點位元組碼動態轉為原生機器碼,逼近 C/C++ 效能。
多執行緒語言層面內建 Thread、synchronized、wait/notify,簡化併發程式設計。
動態性執行期載入類別、動態連結;介面支援多實現,比單繼承更靈活。

1.3 Java Applet 與豐富類庫

Applet:網頁內的動態元件

Applet 嵌入 HTML,透過瀏覽器下載執行。具備安全沙箱機制,可接收使用者輸入、動態繪圖、播放多媒體,超越靜態圖片/聲音格式。雖然現代瀏覽器已淘汰 Applet 支援,但其「跨平台網路元件」概念深啟發後續 Web 技術演進。

核心類庫架構

  • java.lang:字串、執行緒、例外、數學運算等基礎。
  • java.util:集合框架 (HashMap, ArrayList)、日期時間、隨機數等工具類。
  • java.io:統一「流」模型處理檔案、網路、管道 I/O。
  • java.net:Socket 程式設計、URL 連線、協定處理器。
  • java.awt / javax.swing:跨平台 GUI 元件 (視窗、選單、表格...)。
  • java.applet:Applet 生命週期管理。

1.4 Java vs C/C++:關鍵差異對照

項目C/C++Java影響
全域變數任意處宣告僅能透過 public static 類別欄位模擬強制封裝,減少副作用
goto支援保留字但不可用,改用例外處理結構化程式設計
指標直接記憶體操作完全移除,參考型別取代消除緩衝區溢位、野指標漏洞
記憶體管理malloc/free, new/delete 手動new 配置堆疊,GC 自動回收杜絕記憶體洩漏、重複釋放
基本型別大小平台相關 (int 16/32 位)固定 (int 32 位, long 64 位)跨平台行為一致
型別轉換指標強制轉換任意執行期檢查相容性型別安全
標頭檔.h/.hpp 分離宣告無標頭檔,類別定義即宣告簡化建構、避免版本不一致
結構/聯集支援,成員預設 public無,全部封裝於類別統一存取控制
前置處理器#define, #ifdef 宏無宏,用 final 常數取代除錯可讀性提升

1.5 第一支 Java 程式:HelloWorld 應用程式與 Applet

應用程式

public class HelloWorldApp {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}
  • 檔名 HelloWorldApp.java,編譯 javac HelloWorldApp.java 產生 .class,執行 java HelloWorldApp。
  • main 為 JVM 入口,必須為 public static void,參數 String[]。

Applet 版本

import java.awt.*;
import java.applet.*;

public class HelloWorldApplet extends Applet {
    public void paint(Graphics g) {
        g.drawString("Hello World!", 20, 20);
    }
}
  • 無 main,繼承 Applet 並覆寫 paint(Graphics)。
  • 需撰寫 HTML 嵌入:<applet code="HelloWorldApplet.class" width=200 height=40></applet>。
  • 以 appletviewer Example.html 或支援 Java 的瀏覽器執行。

小結:Java 程式由類別組成,應用程式需 main 入口,Applet 需繼承 Applet。基本語法 (運算子、控制結構) 與 C/C++ 高度相似,後續章節將深入探討新增特性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved