有没有办法改进BigInteger
缓存性能?
当您对 BigInteger
进行操作时,它总是会创建一个新的 BigInteger
。例如,当您将两个大整数相乘时,将创建一个新的 BigInteger
来承载结果。我想使用 BigInteger
的一些可变版本,它将使用结果更新其中一个字段。
最佳答案
我怀疑如果你能以某种方式做到这一点,你的算法的性能是否会提高,但主要原则是 BigInteger
是不可变的。您不能在不生成新实例的情况下对其执行操作,并且有充分的理由需要这种行为 - 也就是说,如果您有多个线程在单个 BigInteger
上操作,您可以放心这些线程不会直接覆盖 BigInteger
*。
如果您不希望这种行为,您唯一的选择是创建一个新类,但请记住,在某些时候您仍将处理 BigInteger
的不可变性层。
*:你知道,只要你不重新分配变量...
关于Java BigInteger 替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34996691/