例如,如果我在Eclipse中用Java编译它
intvar = (int)(((var1 * var3))*(7));
Run Code Online (Sandbox Code Playgroud)
将编译器清理干净
intvar = (int) var1 * var3 * 7;
Run Code Online (Sandbox Code Playgroud)
然后编译器会做它的机器代码和东西.
或者,我是否必须对编译器执行一些特殊操作以使其优化代码?
此外,这适用于所有其他编译的语言吗?
检查字节码javap -c:
intvar = (int)(((var1 * var3))*(7));
Run Code Online (Sandbox Code Playgroud)
变为:
4: iload_1
5: iload_2
6: imul
7: bipush 7
9: imul
10: istore_3
Run Code Online (Sandbox Code Playgroud)
和
intvar = (int) var1 * var3 * 7;
Run Code Online (Sandbox Code Playgroud)
变为:
4: iload_1
5: iload_2
6: imul
7: bipush 7
9: imul
10: istore_3
Run Code Online (Sandbox Code Playgroud)
即完全相同.