變量與常量是程序的基本構建塊。本文系統梳理 Java 中變量聲明規則、命名規範、賦值與初始化機制、常量定義等核心語法,助力夯實基礎、避免常見陷阱。
Java 強制要求變量使用前聲明類型:
int a; // 聲明
a = 10; // 賦值
int b = 20; // 聲明並初始化(推薦)
$ 或 _$、_name ≠ Nameclass, int, for 等)合法示例:a, a1, userName, _temp, $value, 用戶名(中文合法但不推薦)
非法示例:1a, user-name, class, a b
Character.isJavaIdentifierStart('中'); // true
Character.isJavaIdentifierPart('1'); // true
Character.isJavaIdentifierStart('1'); // false
int x = 1, y = 2, z = 3; // 同類型多變量
String s1 = "a", s2 = "b";
int a = 10;(單語句,推薦,減少未初始化風險)int a; a = 10;(兩語句)局部變量(方法內)必須顯式初始化才能使用,否則編譯錯誤:
void test() {
int x;
System.out.println(x); // 編譯錯誤:variable x might not have been initialized
}
成員變量(類字段)若未顯式初始化,自動獲得默認值:
| 類型 | 默認值 |
|---|---|
| byte/short/int/long | 0 |
| float/double | 0.0 |
| char | '\u0000' |
| boolean | false |
| 引用類型 | null |
變量聲明可出現在代碼塊任何位置(C/C++ 僅限塊開頭),但同一作用域內不可重複聲明同名變量。
final int MAX_SIZE = 100;
final String APP_NAME = "MyApp";
final double PI = 3.1415926;
final 修飾基本類型 → 值不可變;修飾引用類型 → 引用不可變(指向對象內容仍可修改)。
final int MAX_CONNECTIONS = 100;
final String DEFAULT_ENCODING = "UTF-8";
此為 Java 標準編碼規約(Google/Java/Oracle 統一推薦),提升可讀性並區別於變量。
final + 基本類型/String + 編譯期可知值 → 編譯器內聯優化,可用於 switch case、註解屬性、數組長度final + 對象引用 或 調用方法賦值 → 僅保證引用不變,無內聯優化final int A = 10; // 編譯期常量
final int B = new Random().nextInt(); // 運行期常量
final String S = "Hello"; // 編譯期常量
final String T = getName(); // 運行期常量
final,語義明確且利於 JIT 優化final List<String> list = new ArrayList<>(); 防止誤重新賦值userCount 優於 cnt,MAX_RETRY_TIMES 優於 MAX扎實的語法基礎是寫出清晰、健壯、高性能 Java 代碼的前提。建議配合 CheckStyle / SonarLint 等工具在團隊中強制執行命名與初始化規範。