種類與架構
Java的特性
- 簡單的(Simple)
- 物件導向的(Object-oriented)
安全的(Secure)
Java所撰寫的程式必須運行於Java執行環境中,Java執行環境採取了一些安全措施來保護程式不受攻擊
- 禁止利用指標操控記憶體。
- 禁止 Applet 類的程式對電腦的硬碟直接進行讀取或寫入的動作
才不會下載 Applet 時,就不知不覺的被寫入某個資料或被竊取資料。
- 驗證所有 Java 程式是否擁有合法的程式碼,
即使 Java 程式被使用其它程式惡意修改,Java 執行程式也會檢查出來。
- 類別載入器(Class loader)的階層架構設計,避免了載入惡意(Malicious)來源的類別。
多執行緒的(Multi-thread)
- 跨平台(Platform- independent)
仰賴JVM
Java種類
依市場需求分為三大類
- Java SE : 標準版 (Standard Edition)
- Java ME : 微型版 (Micro Edition)
- Java EE : 企業版 (Enterprise Edition)
[Java SE]
- 目的:開發桌面應用程式或是瀏覽器中內嵌的 Applet 程式
例如您可以基於 Java SE 開發一個文字編輯程式。
Java™ Standard Edition (簡稱 Java SE),Java 標準版
對於想要學習 Java 程式開發的使用者而言,最先必須接觸的,也是必備的 Java 技術基礎
[Java ME]
- 目的:在資源受限的消費性電子產品(等級低的CPU與記憶體)上,開發的應用程式
例如手機, PDA , kios 和其他各式嵌入式系統
Java™ Micro Edition (簡稱 Java ME),Java 微型版
現在非智慧型手機上若聲稱有支援 Java,多半是由這個版本所開發出來的程式。
[Java EE]
- 目的:大型或企業級網站而開發的應用程式
Java™ Enterprise Edition (簡稱 Java EE),Java 企業版
以 Java SE 為基礎,在架構上與開發的規模上都比 Java SE 龐大許多,
在所應用的技術上,比較為人所耳熟能詳的像是 JSF、Servlet、EJB、JAP 等。
Java SE 基本架構
四個主要的部份:
- Java Code : Java原始檔案,開發就是寫這些 (*.java)
- JDK : compiler過後的java檔案 (*.class)
- JRE : Java的執行環境
- JVM : Java跨平台處理
運作順序大概如下:
詳細內容:
[Java Language]
Java 屬於高階的程式語言(語法與語義是人類比較容易的理解方式)
[JDK]
- 目的: Compiler轉換成低階語言、協助開發執行與測試
source code (
*.java
)經過Compiler的過程後會變為檔案(*.class
)
Java SE Development Kits (簡稱JDK),Java 標準版開發工具箱
在 JDK 中提供工具程式,協助將Java高階語言轉換為低階語言,讓電腦閱讀。
這個工具程式我們稱之為編譯器(Compiler)
另外JDK也有提供其它相關的開發、執行、測試等工具。 在撰寫好 Java 程式的原始碼(Source code)之後,還必須安裝 JDK,才可以進行接下來的編譯、測試等工作。
內容介紹:
bin/
: 在這個資料夾下提供了開發 Java 程式時所必需的一些工具程式bin 資料夾中看到的程式只不過是個包裝器(Wrapper),
JDK 所提供的工具程式大多是由 Java 所撰寫而成,它們被放在 lib 目錄的 tools.jar*,
bin 資料夾中的這些可執行程式,其目的是呼叫 tools.jar 中的 Java 程式,讓開發人員可以少輸入一些指令。
javac 編譯器
java 執行程式
- 測試 Applet 的
appletviewer 程式
- 製作說明文件
javadoc 程式
- 製作 JAR(Java Archive File)檔的
jar 程式
jre/
: 是 JDK 自己要使用的Java 執行環境(JRE)lib/
: 放置了一些由 Java 撰寫而成的 JDK 工具程式這些 JDK 工具程式被封裝為 JAR(Java Archive File)檔案
JAR 檔案專門用來封裝 Java 程式,它採用與 zip 壓縮檔案同樣的格式
如果您想要看看 JAR 檔案實際上封裝了哪些 Java 工具程式,可以使用解壓縮軟體來開啟這些檔案。
src.zip
壓縮檔 : 這個壓縮檔中提供 Java SE 標準類別庫的原始程式檔案Java 開發人員有時會想要了解標準類別庫中的某個類別或方法是如何實作的,這時就可以開啟這個檔案中的相對應程式碼來觀看。
[JRE]
- 目的: 提供 Java 應用程式相關資源的一個環境,以利執行Java程式
e.g. 標準類別庫(Class library),Java 擬機器等。
簡單的說,您的電腦如果要運行 Java 程式,JRE 是必須安裝的基本要求。
Java Runtime Environment (簡稱JRE),Java 執行環境
透過JRE內的元件來運作Java程式,
Java如何透過Web運作?
經過JDK Compiler 過的Java Applet容量並不大,可以透過網路傳遞到Client端。
Java 程式從網路上下載後,透過Client端安裝的JRE運作。
簡單的說,如果一個 Applet 程式需要使用 100 個資源,
而其中 80 個資源是標準常用的元件,
若這些元件直接安裝在您的電腦上,則下載 Applet 程式時只需下載 20 個資源,以節省下載的時間,
剩下的 80 個標準元件可從執行環境(JRE)中取得。
[JVM]
- 目的 : 跨平台處理
JVM 會將編譯過的 Java 程式轉換為與平台相依的原生碼(Native code),讓 Java 程式可以運行於各個平台之上。
Java Virtual Machine (簡稱JVM),
由於每個要運行Java的設備上都會安裝JRE,直接在設備上執行Java Applet。 透過JVM可以處理跨平台的問題
簡單說就是安裝的時候下載不同的JRE,這種處理機至叫做JVM (JRE裡面的某一個專門負責處理平台的功能)
所以而不用理會該設備上 運行的是什麼樣的平台 , 像 是 Linux 、 Macintosh 、Windows、Solaris 等。
您所撰寫並編譯好的 Java 程式會將 JVM 當作一台真實的機器,而不用知道它是運行於哪一個作業系統之上
JVM對於 Java 程式而言,就是一台虛擬的電腦設備,相當於是Java的作業系統
其他補充
[IDE]
- 目的 : 提供開發人員更多的輔助功能,像是語言關鍵字提示、程式碼管理、除錯功能等,
e.g. NetBeans、Eclipse
NetBeans IDE 是眾多 Java 程式開發人員所愛用的 IDE 之一。
簡單說就是開發環境拉~PHP用sublime或notepade++等等,看個人偏好
Integration Development Environment (簡稱IDE),整合開發環境
通常IDE都會協助裝好JDK和JRE,一次到位~
[如何準備環境]
- 開發環境
- 安裝JDK (開發)
- 安裝JRE (測試)
- 安裝IDE (選擇,但通常會)
- 設定 Path 環境變數 : 為了讓作業系統找到 JDK 的工具程式
雖然JDK本身就含蓋一些能夠執行的JRE部分,但和實際的JRE還是有些差別...