Qual é o tamanho máximo que posso definir ao um vetor de inteiros em java ?

eu sei que o valor máximo para variáveis inteiras é

int exemplo = 2147483647;

Teoricamente o tamanho máximo de um int, que é 2147483647.
Na prática vai depender da quantidade de memória disponível para a máquina virtual.

No caso de arrays inicializados na declaração, como por exemplo int[] array = new int[] { 1, 2, 3, 4, N }, o limite é de 65535 elementos.

5 curtidas

Se por inteiros você quer dizer “o tipo int”, aí é a resposta do @staroski. Se você quer dizer “no conjunto dos números inteiros”, aí você poderia usar o tipo long, que também é de numeros inteiros, e cujo limite é 9.223.372.036.854.775.807.

Agora, se você refere ao valor máximo de um índice num array, aí basta lembrar que o índice também é um inteiro, ou seja, desde que o computador tenha memória suficiente, o elemento array[2147483647] seria o último elemento possível.

Se esse array contiver números inteiros (4 bytes), seriam necessário 8GB para esse array.

1 curtida

Só querendo ser chato… não seriam simplesmente 4 bytes x 2147483648 pois o objeto array contém um header com metadados do objeto, então seria um pouquinho mais.

1 curtida

Bem observado. O overhead da classe array é de 24 bytes e o próprio byte array tem mais 8. O overhead da classe ocorre uma vez só, independente do número de arrays.

1 curtida