更新時間:10/29/2018
前言
James Gosling 是加拿大計算機科學家,最著名的是 Java 編程語言背後的創始人和首席設計師。
James Gosling:「我看見窗戶外面有顆橡樹,所以將它取名為 Oak,但後來發現 Oak 這個名稱已經被註冊使用了,大家喝著咖啡邊討論新的名稱,才靈機一動的將之改名為"Java"。」
一、Java 語言的特性
Java 之所以被開發,是要達到以下五個目的:
- 應當使用"物件導向"程式設計方法學
- 應當允許同一程式在"不同"的電腦平台執行
- 應當包括內建的對電腦網路的支援
- 應當被設計成安全地執行遠端程式碼
- 應當易於使用,並借鑑以前那些物件導向語言(如C++)的長處。
1.1 物件導向
「物件導向程式設計語言」的核心之一就是開發者在設計軟體的時候可以使用自訂的類型和關聯操作。程式碼和資料的實際集合體叫做「物件」。一個物件可以想像成繫結了很多「行為(程式碼)」和「狀態(資料)」的物體。
1.2 跨平台性
執行 Java 應用程式必須安裝 Java 執行時環境(Java Runtime Environment,JRE),JRE 包括 Java 虛擬機器(Java Virtual Machine,JVM),以及 Java 平台核心類和基礎 Java 平台庫。通過 JVM 才能在電腦系統執行 Java 應用程式(Java Application),這與 .Net Framework 的情況一樣,所以電腦上沒有安裝 JVM,那麼這些 java 程式將不能夠執行。
1.3 自動垃圾回收(Garbage Collection)
對象的建立和放置都是在記憶體堆疊上面進行的。當一個物件沒有任何參照的時候,Java的自動垃圾收集機制就發揮作用,自動刪除這個物件所佔用的空間,釋放記憶體以避免記憶體洩漏。
注意程式設計師不需要修改finalize方法,自動垃圾收集也會發生作用。但是記憶體洩漏並不是就此避免了,當程式員疏忽大意地忘記解除一個物件不應該有的參照時,記憶體洩漏仍然不可避免。