一 "宏替换"简单应用
1 代码示例
public class FinalLocalTest
{
public static void main(String[] args)
{
// 定义一个普通局部变量
final int a = 5;
System.out.println(a);
}
}
2 运行结果
5
3 结果分析
可执行"宏替换"的final变量的3个基本条件
- 使用final修饰符修饰。
- 在定义该final变量时指定初始值。
- 该初始值在编译时就被确定下来。
二 基本的算术表达式或字符串中"宏替换"应用
1 代码示例
public class FinalReplaceTest
{
public static void main(String[] args)
{
// 下面定义了4个final“宏变量”
final int a = 5 + 7;
final double b = 1.7 / 3;
final String str = "疯狂" + "坦克";
final String book = "卓越员工高效工作法:" + 99.0;
// 下面的book2变量的值因为调用了方法,所以无法在编译时被确定下来
final String book2 = "卓越员工高效工作法:" + String.valueOf(99.0); //①
System.out.println(book == "卓越员工高效工作法:99.0");
System.out.println(book2 == "卓越员工高效工作法:99.0");
}
}
2 运行结果
true
false
三 "字符串"连接应用与"宏替换"
1 代码示例
public class StringJoinTest
{
public static void main(String[] args)
{
String s1 = "疯狂英语";
// s2变量引用的字符串可以编译时就确定出来,
// 因此s2直接引用常量池中已有的"疯狂英语"字符串
String s2 = "疯狂" + "英语";
System.out.println(s1 == s2);
// 定义2个字符串直接量
String str1 = "疯狂"; //①
String str2 = "英语"; //②
// 将str1和str2进行连接运算
String s3 = str1 + str2;
System.out.println(s1 == s3);
}
}
2 运行结果
true
false
3 结果分析
如果给str1和str2加上final修饰,最后一行将会输出true。