在java中有任何称为“常量折叠”的概念吗?如果是的话是什么?
答案 0 :(得分:9)
是的,有。
来自this JavaWorld article(你可以自己搜索一下!):
static final int length = 25;
static final int width = 10;
int res = length * width;
执行时间不用于乘以这些值;相反,乘法在编译时完成。修改以下变量赋值的代码以生成表示宽度和长度乘积的字节码:
int res = 250;
答案 1 :(得分:6)
Constant folding是在编译时简化常量表达式的过程。常量表达式中的术语通常是简单的文字,例如整数2,但也可以是其值永远不会被修改的变量,或者显式标记为常量的变量
是的,它存在于Java:Compiler optimizations