両方のJava.lang.Long
およびJava.math.BigInteger
は非常に大きな自然数を保持できます。
Longの最大値も知っていますが、BigIntegerの最大値は何ですか?
また、容量は別として、BigIntegerは、Longの範囲に収まる一般的に大きな整数を処理する場合、パフォーマンスが向上するでしょうか?
唯一の考慮事項は次のとおりです。私の値は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を使用する必要があります。