Java 之所以能成為長盛不衰的程式語言,主要歸功於四大核心特性:
EJB 封裝了資料庫連線、交易管理、安全性等底層細節,讓開發者專注於商業邏輯。早期版本雖因複雜度高而受詬病,但奠定了 Java EE 架構的基石。
Model-View-Controller 模式將業務邏輯、資料呈現、流程控制分離:
| 層級 | 技術實現 | 職責 |
|---|---|---|
| Model | JavaBean, EJB | 資料封裝、業務規則、持久化 |
| View | JSP, Applet, Taglib | 使用者介面渲染 |
| Controller | Servlet | 請求分派、頁面流程控制 |
典型請求流向:IE → Web Server → Application Server (EJB) → DB
注意:早期 EJB 採用 RMI-IIOP 協定難以穿透防火牆,無狀態 Session Bean 可發布為 Web Service 以解決跨網路調用問題。
# CLASSPATH:告訴 JVM 從哪裡載入類別
.;c:\j2sdk1.4\lib\tools.jar
# "." 代表當前目錄,優先搜尋本地類別
# PATH:讓系統找到 javac、java 等執行檔
c:\j2sdk1.4\bin
c:\j2sdk1.4\bin\javac.exe,參數 $(FileName),初始目錄 $(FileDir)c:\j2sdk1.4\bin\java.exe,參數 $(FileNameNoExt),初始目錄 $(FileDir)main 方法的 public 類別名相同(如 HelloWorld.java)。PascalCase),方法/變數首字母小寫(camelCase),常數全大寫加底線(MAX_VALUE)。當物件不再被任何引用指向時,GC 執行緒會自動回收其佔用的堆疊記憶體,開發者無需(也無法)手動釋放記憶體,大幅降低記憶體洩漏風險。
package abc.def; // 對應目錄結構 abc/def/
public class A { } // 僅能有一個 public 類別,檔名需為 A.java
class B { } // package-private 類別
class C { }
編譯輸出套件目錄:javac -d . A.java 會在當前目錄下生成 abc/def/A.class。
執行與打包:在套件根目錄上層執行 java abc.def.A;打包指令 jar cvf abc.jar abc,產生的 JAR 可加入 CLASSPATH 直接使用。
_、錢字號 $ 組成,首字元不可為數字。goto、const)。// 單行註解
/* 多行註解 */
/** 文件註解 (可被 javadoc 提取生成 API 文件) */
| 類型 | 位元數 | 預設值 | 備註 |
|---|---|---|---|
| boolean | 1 (邏輯上) | false | 無大小規定 |
| char | 16 | '\u0000' | Unicode 字元 |
| byte | 8 | 0 | -128 ~ 127 |
| short | 16 | 0 | -32,768 ~ 32,767 |
| int | 32 | 0 | 約 ±21 億 |
| long | 64 | 0L | 需加 L 後綴 |
| float | 32 | 0.0f | 需加 f 後綴,單精度 |
| double | 64 | 0.0d | 預設浮點型別,雙精度 |
123、八進制 0173 (以 0 開頭)、十六進制 0x7B (以 0x/0X 開頭)。double,float 需加 f/F;支援科學記號 1.23e4。'A',轉義序列同 C/C++(\n 換行、\t 定位、\\ 反斜線、\' 單引號)。java.lang.String。Java char 固定 16 位元代表一個 Unicode 碼點(基本多文種平面 BMP),支援國際化字元,不同於 C/C++ 的 8 位元 char。