Depois vc cria uma outra referência apontado para o mesmo objeto:
Object o2 = o1;
(a tradução disso é: o2, aponte para o mesmo lugar que o1 está apontando)
Nesse momento, vc tem duas referências apontando para o mesmo objeto. Se aqui vc faz…
o1 = null;
… vc ainda mantém uma referência apontando para o objeto, que é o2. Ou seja, o objeto ainda não está pronto para ser coletado! Isso só vai acontecer depois que vc fizer…
o2 = null;
Blz?
boaglio
Imagina assim:
Object o1 = new Object();
-com o new, um novo objeto o1 é criado no endereço 10
-o1 aponta para endereço 10
(temos> o1->10)
Object o2 = o1;
-o2 aponta para o mesmo endereço de o1 (endereço 10)
(temos o1->10 e o2->10)