所以说例如我正在经历一个'如果'块,在这个块中,我将一些数字的值与一个常量进行比较。难道是这样的更昂贵:在Java中,创建对象或获取对象值会更昂贵吗?
if(foo.getOb().getVal() == CONST_0)
{
....
}
....
if(foo.getOb().getVal() == _CONST_N)
{
....
}
else
....
OR:
int x = foo.getOb().getVal();
if(x == CONST_0)
{
....
}
....
if(x == _CONST_N)
{
....
}
else
....
我知道,这似乎是一个愚蠢的问题。我认为第二个实现速度更快/效率更高,但我很好奇为什么。我一直在想着最近几分钟的原因,因为我对Java的知识...有点欠缺,所以无法真正提出任何事情。
非常感谢任何答案!
为您的示例生成字节码并检查引擎盖下发生了什么 – svlada 2010-06-04 16:36:56
让您的编译器执行此优化。如果您花时间担心这一点,请确保您忽略了更重要的问题。 – 2010-06-04 16:39:44