Outra duvida com Strings

5 respostas
D

Quando eu crio uma string dessa forma:

String nome = "Marcelo";

nome = "Aguiar";

Como os dois objetos criados estao no pool de string, o objeto "Marcelo" que era referenciado pela variavel nome agora esta elegivel para o GC? Mas o GC nao limpa objetos somente do Heap?

5 Respostas

ViniGodoy

http://faq.javaranch.com/view?ScjpFaq#stringLiteralGC

Sim, é elegível para garbage collection.

D

Obrigado pelo hiper link. So mais uma 2 perguntas em tempo de execução que o Garbage Collection remove eles do pool de string? Esse bytecode que a JVM descarrega e apos a compilaçao, isso mesmo?

ViniGodoy

Normalmente o gc só vai eliminar ao final do programa, quando a VM está finalizando.

Isso não significa que a String não esteja elegível. Se a Sun quiser (ou outro fabricante de VM) pode eliminar a String a qualquer momento, desde que não haja mais referências para ela.

Particularidades da implementação da VM da Sun não são cobradas no exame.

D

Entendi.

Quando alguem fala que é gerado o “bytecode” da classe, quer dizer que em tempo de execuçao do programa ele é transformado em bytes para a VM executa-lo?

ViniGodoy

O bytecode é o arquivo .class

É o “executável da VM”

Criado 23 de setembro de 2010
Ultima resposta 23 de set. de 2010
Respostas 5
Participantes 2