什么是JAVA中编译器内联的编译时间常量表达式值?

时间:2015-04-22 18:06:09

标签: java

最近我正在读我得到了这个

  

"当你声明一个String(不可变)变量为final时,和   用编译时常量表达式初始化它,它也变成了   一个编译时常量表达式,其值由内联内联   使用它的编译器。"

"我真的很困惑这意味着它的价值是由编译器和#34; ?如果可能的话,请以简单的方式解释

Source of the above line

1 个答案:

答案 0 :(得分:2)

当String在编译时完成并初始化时,编译器可以将字符串复制粘贴到代码中,而不是在每次使用时查找变量。与inline expansion类似。

final String a = "asd";
String b = a;

以上代码段变为

final String a = "asd";
String b = "asd";