给出以下代码:
public class MainClass {
public static int f(){
int i=0;
i++;
return i;
}
}
Run Code Online (Sandbox Code Playgroud)
编译器javac生成以下代码:
Compiled from "MainClass.java"
public class latte_jvm.MainClass {
public static int f();
Code:
0: iconst_0
1: istore_0
2: iinc 0, 1
5: iload_0
6: ireturn
}
Run Code Online (Sandbox Code Playgroud)
函数f确实很简单 - 它只返回1.它是如此直接翻译,以至于我很难相信java编译器会进行任何优化.为什么java编译器创建者决定不在编译阶段进行这样的优化?
为什么这个javascript行看起来像这样?我的意思是,为什么有一个额外+接近尾声?
'<script type="text/javascript" src="' + src + '"></' + 'script>'
Run Code Online (Sandbox Code Playgroud)
资料来源:http://code.google.com/p/closure-library/source/browse/trunk/closure/goog/base.js#511