BigInteger class is used for mathematical operation which involves very big integer calculations that are outside the limit of all available primitive data types. There is no theoretical limit on the upper bound of the range because memory is allocated dynamically but practically as memory is limited you can store a number which has Integer.MAX_VALUE number of bits in it which should be sufficient to store mostly all large values. BigInteger class is that it is immutable. This means that you cannot change the stored value of a BigInteger object, instead you need to assign the changed value to a new variable.
Example :-
BigInteger A; // Declaration
A = BigInteger.valueOf(54); // Initialization