我对 JIT 优化有疑问。我编译了一段简单的代码:
class btest
{
static final boolean flag=false;
public final void foo(int x)
{
if(flag) {a=x; b=x*2; c=x*3;}
}
public void bar(int y) {foo(y);}
int a,b,c;
};
flag
设置为false
sofoo()
完美编译为空代码 - 只是返回。但bar()
还是叫它。
JIT 是否有可能消除这个调用?是否flag
属于外部类有关系吗?
问候