questão do livro da kathy sierra SCJP

4 respostas
W

bom tava olhando as questões que vem no fim de cada capitulo e tem uma aqui que eu nao concordo até ja re-li os capitulos que a envolvem…
bom la vai

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;
    // do Stuff
} }

questão:
When // doStuff is reached, how many objects are eligible for GC?

respostas:
0
1
2
Compilation fails.
It is not possible to know.
An exception is thrown at runtime.

C is correct. Only one CardBoard object (c1) is eligible, but it has an associated Short wrapper object that is also eligible.

bom eu acertei ,mas minha explicação nao bate com a que ta ai…
pra mim os 2 objetos que ficariam elegivel seriam o c1 e o c3…
o c1 logo de cara não e nem duvida recebe um null no final…
o c3 e incializado apartir do retorno do metodo go chamado pelo c1, com o parametro do c2… oque retorna null ja que
cb = null; return cb;
o c2 fica imutavel mesmo sendo passado como parametro para o metodo go, o metodo nao pode alterar a variavel de referencia c2…
e quanto ao Short story creio que foi iniciado normalmente, e reside na memoria mesmo ele não sendo utilizado em nenhum momento…

e como podem ver o livro diz que seria o c1 e o Short associado a ele…
e agora escrevendo isso me veio outra duvida, eu tenho que levar em consideração todos os membros da classe?(oque pra mim faz sentido, ja que o membro foi iniciado com um objeto que resisdiu na memoria em algum momento e por consequencia do objeto que ele pertence nao ter mais referencia ele tambem nao o teria…) pq ai ao invez de 2 minha resposta teria que ser 4… ja que o c3 tem um Short associado a ele tambem…
e 4 nem tem ai :roll:

bom é isso ae valeu…

4 Respostas

W

Intão, to meio sem tempo agora, saindo para trabalhar mas lembre-se o que fica elegivel é objeto!, não foi criado nenhum objeto em c3 portanto quando o mesmo recebeu null nao deixou nenhum objeto elegivel, e voce tem sim que considerar seus membros, bom quando chegar no trabalhar do uma editada na resposta, desculpe a pressa abraços!

G

Bom dia pessoal,

Também estou estudando para certificação, mas GC é meio chato né? Também fiquei em dúvida com a questão exposta…caso alguém puder clarear um pouco mais agradeceria também…

Abraços

Pilon

Já existe um post sobre essa mesma pergunta:
http://www.guj.com.br/posts/list/77248.java#408089
Flw

W

Ah valeu falta de atenção minha mesmo, + o resultado ainda não bate porque o Short é menor que 127, em todas as classes logo é so um objeto Wrapper, + no topico que o Pilon postou ja tem a solução vlw, saiu uma errata pro livro falando que o valor do Short story seria 200…

Pilon:

Já existe um post sobre essa mesma pergunta:
http://www.guj.com.br/posts/list/77248.java#408089
Flw

nem imaginei que teria justo esta questão aqui olha que aind procurei no google =p , mas procurei em ingles…
ajudou bastante, vlw…

Criado 3 de janeiro de 2008
Ultima resposta 3 de jan. de 2008
Respostas 4
Participantes 4