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常量必须在声明时赋值,且值为编译时可知的表达式。