据我所知,java.lang.Long和java.math.BigInteger都包含非常大的自然数.
我也知道Long的最大值,但BigInteger的最大值是多少?
除了容量之外,BigInteger在处理仍然落在Long范围内的一般大整数时会表现得更好吗?
题
唯一的考虑因素是:我的价值对于龙来说太大了吗?
解决方法:
BigInteger能够持有比Long更大的数字. BigInteger似乎能够保持(2 ^ 32)^ Integer.MAX_VALUE,尽管这取决于实现(并且,即使在实现中真正无限制,最终也会有物理资源限制)See explanation here.
Long的范围是[-9,223,372,036,854,775,808,9,223,372,036,854,775,807].
Long会比BigInteger表现更好,所以它实际上取决于你的值的大小.如果它们都属于Long的最大值,则不使用Long是没有意义的.如果任何大于Long max值,你几乎必须使用BigInteger.