我一直认为java中的表达式是这样的:
String tmp = "someString";
只是某种“语法糖”
String tmp = new String("someString");
当我最近反编译我的 java 应用程序时,我看到了
public static final String SOME_IDENTIFIER = "SOME_VALUE";
在代码中仅由值替换,并且静态最终变量被剥离。
每次想要访问静态 final 时,不会实例化一个新的 String 吗?这怎么能被认为是“编译器优化”?