Duvida em relação ao Garbage Collector

12 respostas
P

E ai galera,

Acontece o seguinte. digamos que eu tenho a seguinte declaração:

String X = "java";
X.concat(" is good");

Bem, eu tenho um objeto String contendo “java is good” rodando mas sem var referencia alguma.

Este objeto estaria qualificado para o garbage collector, certo? Eu li que não em algum lugar.

12 Respostas

Rafael_Nunes

Não encontrei referência a isso na JLS ou JVM Specification.

Numa questão de certificação, eu diria que sim, está elegível para coleta.

http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&f=24&t=034963

V

Sergio,
Pelo que eu estudei, você poderia marcar X para garbage collector setando null para a variável.
Agora o X que está sem referencia ficaria esperando para ser coletado na fila. Pois o mesmo está sem referencia alguma.

Espero ter ajudado. 
   Se eu estiver errado não exitem em me corrigir.
P

Uma fonte confiável me disse que caso isso aconteça, o bytecode correspondente nem chega a ser gerado.

Será que tá certo?

Rafael_Nunes

Bytecode do que, da String concatenada?

P

é, do objeto string sem var de referencia.

sergiotaborda

Sergio Figueras:
Uma fonte confiável me disse que caso isso aconteça, o bytecode correspondente nem chega a ser gerado.

Será que tá certo?

Não. Bytecode não tem nada a ver com variáveis. O bytecode de String já existe na JVM indepentemente de quantas strings existem( existe, mesmo que nenhuma exista).

Quando vc chama concat() isso gera uma nova string. E sim, não ha referencia externa a ela ( mas ha interna). E sim será limpa pelo CG.
Se existe uma otimização que remove a string da memoria assim que a JVM entende que ela não será atribuida a coisa alguma, não é da nossa conta. E se existir isso, não deixa de ser um trabalho do GC. Logo, dizer que o GC dá conta é suficiente.

E

Cara tudo vai depender do SO que você esta utilizando, já fiz teste em outro SO sem ser o Windows e não foi qualificado, porém no windows é qualificado.
No livro da Katyi fala que é qualificado, porém isso depende do SO.

Fica tranquilo que uma dessa não cai na prova.

Marck

Olá!

Por favor, alguém conhece um bom livro sobre Garbage Collector que possa indicar?

obrigado!

P

Marck:
Olá!

Por favor, alguém conhece um bom livro sobre Garbage Collector que possa indicar?

obrigado!

Livro sobre o Garbage collector? Caramba…

ve no java.sun.com , deve ter muitos aspectos lá.

Mas uma pergunta, pra q vc quer isso?

[]'s!

Marck

:x
parece besteira, mas preciso entender bem como ele trabalha p argumentar contra os caras aqui da empresa que odeiam java e veneram o c#…rsss :shock: :x

…é q os caras tem uma ideia mto resumida do garbage e tenho certeza que não é o que dizem…

vou dar uma olhada no que vc falou!

obrigado!

P

rsrsrs…

Entendo, mas qualquer coisa você só contra-argumenta como as threads funcionam em .NET e como as threads funcionam em Java/Linux, rsrsrs.

Ai mata eles.

[]'s!!!

Marck

:smiley: HAHAH

combinado!!!
Valeu!

Criado 25 de junho de 2008
Ultima resposta 29 de jul. de 2008
Respostas 12
Participantes 6