最近我正在读我得到了这个
"当你声明一个String(不可变)变量为final时,和 用编译时常量表达式初始化它,它也变成了 一个编译时常量表达式,其值由内联内联 使用它的编译器。"
和"我真的很困惑这意味着它的价值是由编译器和#34; ?如果可能的话,请以简单的方式解释
答案 0 :(得分:2)
当String在编译时完成并初始化时,编译器可以将字符串复制粘贴到代码中,而不是在每次使用时查找变量。与inline expansion类似。
final String a = "asd";
String b = a;
以上代码段变为
final String a = "asd";
String b = "asd";