Duvida sobre coleta de lixo

2 respostas
E

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 !!!

2 Respostas

P

Já existe um tópico assim:
http://www.portaljava.com/forum/posts/list/42515.page#157736

E

valeu !

Criado 24 de março de 2008
Ultima resposta 24 de mar. de 2008
Respostas 2
Participantes 2