questão de garbage collection

10 respostas
jordy

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

Quem arrisca :?:

10 Respostas

danieldestro

B

jordy

Será?? Alguém mais???

TedLoprao

D

Depende do que acontecer no método chamado!!

danieldestro

TedLoprao:
D
Depende do que acontecer no método chamado!!

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

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

É 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 :frowning:

Criado 31 de janeiro de 2005
Ultima resposta 31 de jan. de 2005
Respostas 10
Participantes 5