一、宏变量
先说说什么是宏变量,满足三个必须条件即是宏变量
1、该变量必须是final修饰的变量;
2、该变量必须在开始时就指定初始值;
3、该初始值必须是在编译时期就可以确定。
二、宏替换
public class FinalTest {
public static void main(String[] args) {
String nb = "finaltest";
String nb1 = "final";
String nb2 = "test";
final String nb11 = "final";
final String nb22 = "test";
String nb3 = "final" + "test";
String nb4 = nb1 + nb2;
String nb5 = nb11 + nb22;
System.out.println(nb == nb3);
System.out.println(nb == nb4);
System.out.println(nb == nb5);
}
}
结果:
true
false
true
nb定义了finaltest,nb3定义了 “final” + “test”,初始编译的时候nb3会确定初始值为finaltest,因此初始值与nb相等,所以会把nb3引用的地址指向nb引用的地址,所以nb与nb3相等。而nb11,nb22根据上面三条规则得知是宏变量,引用用宏变量,系统会自动把宏变量替换成他所指向的地址的值,所以nb11+nb22就会替换成finaltest,然后与nb3一样,这就是宏替换。