Final observations
Scanning the length of the numbers in the Fibonacci sequence, roughly every 5 numbers another decimal digit (power of 10) is required. This is corroborated by the approximate quotient of the 300th FibNo requiring 64 digits (~1/5).
From this, one can estimate that the millionth FibNo would require something more than 200,000 decimal digits to express.
Based on this, and an approximation of 3.5 bits to express each decimal digit of a large number, those approx. 200,000 decimal digits would require each BigInteger (a and b and next) to eventually store and process something like 100,000 bytes for each operation (summing or copying).
It can be safely presumed, too, that the BigInteger support grows its allocated storage to meet requirements (multiple calls to realloc()?).
In short, this feels like a frivolous expenditure of machine cycles for questionable purposes. Who would ever seek to print the entire ~200,000 digits of the millionth Fibonacci number?!