Para aqueles que desejam sinalizar isso como duplicado, esta pergunta não está relacionada a nenhuma das perguntas como:
Como calcular o tamanho da memória de um array Java?
Tamanho de memória de matrizes int[] do sistema Java de 32 bits
Em Java, quando uma matriz de primitivos int
é criada:
int[] arr = new int[1000];
A JVM aloca memória para todo o comprimento do array * 4 bytes, ou seja, 4000 bytes após a declaração acima? Não vamos nos preocupar com overheads constantes como cabeçalhos etc.
Meu entendimento é que no caso de tipos numéricos primitivos, por exemplo int
, double
etc., o valor padrão '0' também é um valor válido, portanto precisa de memória. Na verdade, a memória necessária completa deve ser alocada no momento de tais declarações.
Como eu poderia verificar isso?