在談論BigDecimal時,Java編譯器是否將乘法運算刪除1?BigDecimal:Java編譯器能否優化乘以1?
我站在類似於此:
BigDecimal bd = getBigDecimal();//get arbitrary bigDecimal, could be anyone.
bd = bd.multiply(new BigDecimal(getOneTwoOrThree());
凡getOneTwoOrThree方法聲明爲:
/*
* Always returns Integers 1, 2 or 3.
*/
Integer getOneTwoOrThree(){
//some code
}
所以,基本上。
if getOneTwoOrThree()
returns 1,the compiler will perform the multiplication?或者它會不遵守指示?
這是有點存在的懷疑,但我想我在某個層面早 - 優化。
我認爲這裏有太多的代碼來內聯或任何東西。如果JIT能夠做到這一點,我會非常驚訝。然而,在這個實現中,乘以1本質上比乘以具有許多數字的數字(更多數字,更多循環的迭代)便宜。 – erickson 2009-04-24 20:21:57