移除運算符重載、多重繼承等模糊概念;自動垃圾回收簡化記憶體管理;基礎解釋器+類庫僅 ~215KB,適合嵌入式設備。
核心圍繞對象與接口;封裝實現模組化與信息隱藏;繼承機制實現代碼復用;動態接口模型提供擴展性。
內建 TCP/IP 協議支援;URL 機制讓網絡訪問如同本地文件般簡單。
編譯期+運行期雙重檢查;自動垃圾回收防內存洩漏;異常處理機制強制處理潛在錯誤;編譯期捕獲類型聲明錯誤。
無指針設計,記憶體訪問僅通過對象實例變量;防止「特洛伊木馬」式攻擊;避免指針操作導致的錯誤。
生成與架構無關的字節碼;JVM 將字節碼轉換為特定平台機器碼;一次編譯,到處運行。
數據類型固定長度(int 永遠 32 位);類庫實現跨平台接口;編譯器用 Java 寫、運行時用 C 寫,系統本身可移植。
直接解釋字節碼;字節碼攜帶編譯期信息,鏈接過程簡化。
字節碼易轉換為本地機器碼;JIT 編譯器進一步優化;優於傳統解釋型語言。
內建並發機制;同步機制保障共享數據安全;輕鬆實現網絡實時互動。
類庫可自由擴展不影響現有程序;接口支援多重繼承,比類繼承更靈活。
| 特性 | C/C++ | Java 改進 |
|---|---|---|
| 全局變量 | 無封裝,易導致崩潰 | 類中 public static 封裝 |
| goto | 支援 | 用 try/catch/finally 替代 |
| 指針 | 直接操作,不安全 | 完全控制,禁止直接操作 |
| 內存管理 | 手動 malloc/free 或 new/delete | 自動垃圾回收 |
| 數據類型長度 | 平台相關 | 固定長度(int=32位) |
| 類型轉換 | 指針任意轉換 | 運行時類型兼容性檢查 |
| 頭文件 | 維護困難 | 無頭文件,import 機制 |
| 結構/聯合 | 成員全 public | 全部封裝在類中 |
| 預處理/宏 | 可讀性差 | final 常量替代 |
Java 保留了 C/C++ 的語法傳統(變量聲明、參數傳遞、運算符、流控制),卻摒棄了其不合理特性,實現了真正的「簡單、健壯、安全」。