Long vs BigInteger

我知道java.lang.Longjava.math.BigInteger都可以包含非常大的自然数。

我也知道Long的最大值,但BigInteger的最大值是多少?

除了容量之外,BigInteger在处理仍然落在Long范围内的一般大整数时会表现得更好吗?

唯一的考虑因素是:我的价值对于龙来说太大了吗?

BigInteger能够持有比Long更大的数字。 BigInteger似乎能够持有(2 ^ 32)^ Integer.MAX_VALUE,虽然这取决于实现(并且,即使在实现中真正无限制,最终也会有物理资源限制) 请参阅此处的解释 。

Long的范围是[-9,223,372,036,854,775,808,+ 9,223,372,036,854,775,807]。

Long会比BigInteger表现更好,所以它实际上取决于你的值的大小。 如果它们都属于Long的最大值,那么使用Long是没有意义的。 如果任何大于Long max值,你几乎必须使用BigInteger。