有一個PMD rule說如果有預定義的常量,應該避免實例化BigInteger或BigDecimal。爲什麼要避免Java中的biginteger實例化
BigInteger.ZERO
// instead of
new BigInteger(0)
會有比保存幾個字節還有其他好處嗎?
有一個PMD rule說如果有預定義的常量,應該避免實例化BigInteger或BigDecimal。爲什麼要避免Java中的biginteger實例化
BigInteger.ZERO
// instead of
new BigInteger(0)
會有比保存幾個字節還有其他好處嗎?
它避免了這幾個字節,並需要分配到收集他們回來以後
在緊密循環,可以不管
是的,保存了一些JVM指令。
可能的表現,如果你實例化一個很大0的。長/ int參數的替代方法是
BigInteger.valueOf(0)
返回BigInteger.ZERO當參數爲0
而不是創建與new BigInteger
一個新的對象,你最好使用它創建一次一個靜態對象當BigInteger類被加載時。使用所有包裝類型的valueOf
也是如此。
通過使用緩存值,它可能會產生更好的空間和時間性能。
它的大約48個字節。但是,這取決於它被稱爲是否重要。如果性能至關重要,那麼BigInteger可能不是最佳解決方案。 –