Na minha prova caiu uma questão mais ou menos assim:
Não mostrava o código de metodoQualquer() e perguntava:
a - Os objetos serão elegíveis antes da chamada de metodoQualquer()
b - Os objetos serão elegíveis depois da chamada de metodoQualquer()
c - Os objetos nunca serão elegíveis
d - Não é possível saber se os objetos serão elegíveis
Errado! Por mais que o método tire as referências dos atributos dos objetos de A e B, eles AINDA têm referência no método original.
jgbt
eu tmb acho que é B, é a resposta mais logica, mas…
[]'s
P
Paulo
Mesmo não sendo lógico acho que a C, é a certa,
pq supondo que o garbage collector tente coletar primeiro o objeto B e depois o A, ele não vai coleta-lo pois existe uma referencia em A para B.
E se mudarmos a ordem, se o gc tentar coletar o objeto A primeiro que o B também não conseguirá pois em B que ainda não foi coletado tem uma referencia para o objeto A. Acho que isso chama islands of isolation.
Bem essa é minha explicação para o problema se alguem souber a resposta certa postae.
Att. Paulo
TedLoprao
Paulo, na verdade o Garbage percebe isso e sabe que os dois são elegíveis!!!
Realmente, acho q nesse escopo a B está correta, o que eu pensei foi se o método colocar a referência em uma variável de classe que não aparece no problema…
P
Paulo
É TedLoprao,
mas como o gc vai saber isso, se para sinalizar isso, o objeto não pode está sendo referenciado, e neste caso é impossivel de saber. não há nenhuma especificação dizendo que o gc consiga fazer essa distinção.
desculpa mas ainda fico com a letra C.
T+
danieldestro
O objeto de A pode estar referenciando o de B e o de B referenciando o de A, mas se eles não estão sendo referenciados por mais ninguem, então eles estão eleitos ao GC.
jordy
galera, a resposta certa é a B mesmo.
como o Paulo observou, é uma questão que envolve o conceito “island of isolation”, pois existe uma referência cruzada entre os objetos, que ao final do método não são referenciados por mais ninguém, portanto, elegíveis para a coleta.
eu errei essa questão na prova de bobeira