Сам класс BigInteger
используется для представления неизменяемых целых чисел произвольной точности. Это означает, что он может представлять целые числа любого размера (конечно, ограниченные памятью на вашем компьютере).
Однако метод valueOf
возвращает BigInteger
, значение которого равно значению указанного long. Таким образом, BigInteger
, созданный таким образом по определению, может быть большим, как Long.MAX_VALUE
BigInteger
объекты, созданные другими методами и конструкторами класса BigInteger
, конечно, могут быть больше, чем Long.MAX_VALUE
.
Взять, к примеру, приведенный ниже код:
BigInteger big1 = BigInteger.valueOf(Long.MAX_VALUE);
BigInteger big2 = BigInteger.valueOf(Long.MAX_VALUE);
BigInteger big3 = big1.add(big2);
BigInteger
с именем big3
больше Long.MAX_VALUE
, хотя его составные части были созданы с использованием метода valueOf
.