Eu entendi, já tinha feito desse antes mesmo mas não da certo ele cria as mesmas referencias, quando faço isso
System.out.println(alunos.get(0));
System.out.println(alunos.get(1));
é retornado o mesmo valor para os dois.
meu objetivo é criar um for que crie 10 referencias e que não sejam todas iguais, aquele código é a mesma coisa que repetir 10x o mesmo passo um sobrepondo o outro, por enquanto só consegui fazer o array normal onde em cada laço utilizado a variável "i" eu crio uma referência diferente. Acho que o buraco é mais embaixo, obrigado pela ajuda, eu vou pesquisar um pouco mais.
Eu preciso desse código mas em ArrayList: Onde vou criar aluno[0], aluno[1], aluno[2]... n
Aluno[] aluno = new Aluno[10];
for (int i = 0; i < aluno.length; i++) {
aluno[i] = new Aluno();
}