为什么要避免Java中的大整数实例化

时间:2011-10-06 12:44:36

标签: java biginteger

PMD rule说如果有预定义的常量,应该避免实例化BigInteger或BigDecimal。

BigInteger.ZERO

// instead of

new BigInteger(0)

除了节省几个字节之外还有其他优势吗?

5 个答案:

答案 0 :(得分:5)

它避免分配这几个字节,并且需要稍后收回它们

在一个可能重要的紧密循环中

答案 1 :(得分:2)

是的,保存一些JVM指令。

答案 2 :(得分:2)

可能性能,如果你实例化了很多0。

是long / int参数的替代方法

BigInteger.valueOf(0)

当参数为0时返回BigInteger.ZERO

答案 3 :(得分:1)

不是使用new BigInteger创建新对象,而是最好使用一个在加载BigInteger类时创建一次的静态对象。使用所有包装类型的valueOf也是如此。

答案 4 :(得分:1)

通过使用缓存值,可能会显着提高空间和时间性能。