有PMD rule说如果有预定义的常量,应该避免实例化BigInteger或BigDecimal。
BigInteger.ZERO
// instead of
new BigInteger(0)
除了节省几个字节之外还有其他优势吗?
答案 0 :(得分:5)
它避免分配这几个字节,并且需要稍后收回它们
在一个可能重要的紧密循环中
答案 1 :(得分:2)
是的,保存一些JVM指令。
答案 2 :(得分:2)
可能性能,如果你实例化了很多0。
是long / int参数的替代方法 BigInteger.valueOf(0)
当参数为0时返回BigInteger.ZERO
答案 3 :(得分:1)
不是使用new BigInteger
创建新对象,而是最好使用一个在加载BigInteger类时创建一次的静态对象。使用所有包装类型的valueOf
也是如此。
答案 4 :(得分:1)
通过使用缓存值,可能会显着提高空间和时间性能。