所以說例如我正在經歷一個'如果'塊,在這個塊中,我將一些數字的值與一個常量進行比較。難道是這樣的更昂貴:在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