e ae, pessoal !!
Não consigo entender a seguinte questão retirada do livro da kathy sierra.
class CardBoard {
Short story = 5;
CardBoard go(CardBoard cb) {
cb = null;
return cb;
}
public static void main(String [] args) {
CardBoard c1 = new CardBoard();
CardBoard c2 = new CardBoard();
CardBoard c3 = c1.go(c2);
c1 = null;
//faz algo
}
}
Quantos objetos foram eleitos para coleta de lixo ?
A. 0
B. 1
C. 2
D. A compilação Falha.
E. Não é possível saber.
F. É lnçada uma exceção no tempo de execução.
A resposta correta foi a “C”.
No livro diz que apenas os objetos c1 e story foram eleitos para a coleta de lixo.
Por que c2 não foi eleito para a coleta de lixo ?
c2 não continha uma referência ao objeto criado e após ter “entrado” no método “go()” está referência foi apagada e o objeto CardBoard ficou perdido na memória;
não deveriam ser três objetos eleitos para a coleta de lixo ?
falou !!!