1-4 Java 語言的特性

作為一個程式語言來說,Java 有許多重要的特性:

  • 簡單的(Simple)
  • 物件導向的(Object-oriented)
  • 安全的(Secure)
  • 多執行緒的(Multi-thread)
  • 跨平台(Platform- independent)

• 簡單的(Simple)

Java 語言在設計的時候,參考了一些程式語言(例如C/C++),移去了一些程式語言中較為複雜或不容易掌控的部份,例如 Java 中沒有指標(Pointer),不允許您直接對記憶體位址進行操控,因為指標的使用相當複雜,程式設計人員必須小心的使用指標。

Java 程式語言僅允許程式設計師利用物件參考(Objectreference)來操控物件,和使用垃圾收集(Garbage collector)來監視和移除已經不再被參考的物件,另一方面,Java 中對字串的處理更為簡單,而一些語法與 C/C++類似,這使得在學習 Java 語言時更易於上手。

• 物件導向的(Object-oriented)

物件導向是一種思考如何解決問題的方式,Java 的語言模型可以支持使用物件導向的思考方式來撰寫程式,例如您可以使用 Java 語言定義一個類別,使用 Java 語言來實現繼承的機制等。

了解物件導向的精神並以物件導向的方式來設計、撰寫程式並不容易,而且需要經驗的累積,在學習 Java 語言的同時,必須同時學習物件導向的思考方式,如此學來才可以事半功倍。初學者可藉由練習教材中的程式,並從有經驗的開發人員所撰寫的程式中觀摩學習,慢慢了解物件導向的精髓。

• 安全的(Secure)

Java所撰寫的程式必須運行於Java執行環境中,Java執行環境採取了一些安全措施來保護程式不受攻擊,例如:

  • 禁止利用指標操控記憶體。
  • 禁止 Applet 類的程式對電腦的硬碟直接進行讀取或寫入的動作,才不會下載 Applet 時,就不知不覺的被寫入某個資料或被竊取資料。
  • 驗證所有 Java 程式是否擁有合法的程式碼,即使 Java 程式被使用其它程式惡意修改,Java 執行程式也會檢查出來。
  • 類別載入器(Class loader)的階層架構設計,避免了載入惡意(Malicious)來源的類別。

• 多執行緒的(Multi-thread)

要使用Java撰寫具多執行緒功能的程式是簡單的,也就是讓您的程式可以同時間處理兩件以上的事情,例如您可以一邊列印文件,一邊從資料庫中讀出資料,另一方面繼續從網路上傳送檔案。

• 跨平台(Platform- independent)

大多數的語言在撰寫程式時,假如要在不同類型的電腦平台(Computing platform)(像是不同的 CPU 或不同的作業系統)上執行時,就必須要在程式中作大幅的修正。平台相依(Platform-dependence)是因為大多數的語言要求你必須在不同平台上寫適合的程式碼。

Java 程式在撰寫時要編寫一個副檔名為*.java 的純文字檔案,之後透過編譯器(Compiler)將之編譯為*.class 位元碼(byte-code)檔案,位元碼檔案與平台沒有相依性,為了載入並執行這個位元碼檔案,您的電腦(或設備)上必須有 Java 虛擬機器(JVM),JVM 負責載入相關的 Java 類別、直譯 Java 位元碼為平台相依的原生碼(Native code)、及執行 Java 的程式。

圖1-6、Java 跨平台基本原理

提示

Java 技術通常會被當作是一個平台,因為它具有完成底層作業和 CPU 所有工作的能力。這就是為何有些人提議電腦的 CPU 只需要了解位元碼。Sun Microsystems曾經開發過這種電腦的原型,稱為 JavaStation。