O que o BigInteger não tem limite significa?

Eu olhei para essa questão stackoverflow relativa ao Big Integer e especificamente eu não entendo essa linha (as palavras em itálico):

Na class BigInteger, eu não tenho limites e existem algumas funções úteis lá, mas é muito deprimente converter seu belo código para trabalhar com a class BigInteger, especialmente quando operadores primitivos não trabalham lá e você deve usar funções desta class .

Eu não sei o que estou perdendo, mas para representar algo que não tem limite você exigiria memory infinita? Qual é o truque aqui?

Não há limite teórico . A class BigInteger aloca a quantidade de memory necessária para todos os bits de dados solicitados.

Existem, no entanto, alguns limites práticos, ditados pela memory disponível. E há outros limites técnicos, embora seja muito improvável que você seja afetado: alguns methods assumem que os bits são endereçáveis ​​por índices int , então as coisas começarão a ser quebradas quando você ultrapassar os bits Integer.MAX_VALUE .

Graham deu uma ótima resposta a essa pergunta. Eu gostaria apenas de acrescentar que você tem que ter cuidado com o método valueOf porque ele é criado usando long parâmetro long para que o valor máximo seja Long.MAX_VALUE .

Sim, é usado quando precisamos de números muito grandes com precisão arbitrária. É importante notar que precisão “arbitrária” ou número de dígitos não significa “ilimitado”: significa que o número de dígitos em um número ou número de dígitos de precisão em um cálculo é limitado pela memory e / ou limites definidos à precisão. que especificamos.

Veja o código-fonte da class BigInteger, você verá (isso pode ser feito com o NetBean). Um número será representado como um array int. Exemplo, 10113 será [1, 0, 1, 1, 3] (isso não é exatamente o que a class BigInteger faz, apenas um exemplo de como o grande número de módulos funciona). Então, tecnicamente, seu único limite será a sua memory.