Fiquei confuso com esse dois trechos da apostila de Java da Caelum :
Trecho 1:
"Para facilitar esse tipo de caso podemos declarar um vetor (array) de inteiros:
int[] idades;
O int[] é um tipo. Uma array é sempre um objeto, portanto, a variável idades é uma referência. Vamos precisar criar um objeto para poder usar a array. Como criamos o objeto-array?
idades = new int[10];
Trecho 2:
Uma array de tipos primitivos guarda valores, uma array de objetos guarda referências.
Idades é uma array de tipos primitivos ou uma array de objetos?
Idades seria, na verdade, um ponteiro (como em C) que vai apontar para 10 endereços de memória?
class Empresa {
Funcionario[] empregados;
String cnpj;
int livre = 0;
void adiciona(Funcionario f) {
this.empregados[this.livre] = f;
this.livre++;
}
}
No código acima, por que não preciso especificar o tamanho da array?
Na verdade estou declarando um ponteiro?
No meu método adiciona(), estou alocando memória de forma dinâmica ou sequencial?