5
、"Hello"
、3.14
或 true
。它们没有变量名,直接嵌入代码中。final
常量:通过声明变量并用 final
关键字修饰,例如:
final int MAX = 100;
final String GREETING = "Hello";
final
常量:
final
常量:遵循变量作用域规则,可以是类级(static final
)、实例级或局部变量。final
常量:
final
常量:集中定义,修改一处即可全局生效,提高可维护性。5
默认为 int
,5L
为 long
),可能因类型不匹配导致意外错误。final
常量:显式声明类型(如 final long TIMEOUT = 5000L;
),避免隐式类型转换问题。int
、char
等)、字符串和 null
。final
常量:可修饰任意类型(基本类型、对象、数组等)。final
常量:
final int x = new Random().nextInt();
),每次运行值可能不同。字面常量:
System.out.println(100); // 直接使用字面量
final
常量:
final int MAX_VALUE = 100;
System.out.println(MAX_VALUE); // 编译后可能被替换为 System.out.println(100);
特性 | 字面常量 | final 常量 |
---|---|---|
定义方式 | 直接写值(如 5 ) |
声明变量(如 final int MAX = 5; ) |
内存位置 | 常量池 | 编译时常量:内联替换;运行时常量:堆内存 |
作用域 | 无明确作用域 | 变量作用域(类、实例、局部) |
可维护性 | 低(散落各处) | 高(集中管理) |
类型安全 | 依赖编译器推断 | 显式声明类型 |
支持类型 | 基本类型、字符串、null |
所有数据类型 |
运行时灵活性 | 固定值 | 可为编译时或运行时确定的值 |
final
常量:提高代码可读性、可维护性和类型安全性。i < 10
)。final
常量必须在声明时赋值,且值为编译时可知的表达式。