1 final变量——>直接量
当final满足以下三个条件时,final变量将变为直接量
- 使用final修饰符修饰;
- 在定义该final变量时,指定了初始值;
- 该初始值可以在编译时被确定下来。
图示:
代码:
public class FinalLocalTest {
public static void main(String[] args) {
// 定义一个普通局部变量
final int a = 6;
System.out.println(a);
}
}
2 final变量重要用途—“宏变量”
当定义final变量时指定初始值时才会有“宏变量”的效果
代码示例如下
public class FinalLocalTest {
public static void main(String[] args) {
// 下面定义4个final宏变量
final int a = 5+2;
final double b= 1.2/3;
final String str = "高速"+"列车";
final String book1 = "高速列车"+99.0;
// 下面的book2变量的值因为调用了方法,所以无法在编译时被确定下来
final String book2 = "高速列车"+String.valueOf(99.0);
System.out.println(book1); // 高速列车99.0
System.out.println(book2); // 高速列车99.0
System.out.println(book1 == "高速列车99.0"); // true
System.out.println(book2 == "高速列车99.0"); // false
}
}