Se for só isso mesmo, todas as strings acima referem-se a constantes internalizadas, portanto não haverá nenhuma string para ser limpada pelo Garbage Collector.
Neste caso somente um objeto se torna elegível para ser coletado pelo “lixeiro” (coletor de lixo). Este objeto é o String “Test” pois ele não possui mais nenhuma variável de referência apontando para si próprio, tornando se assim elegível, isso não garante 100% de chance de ser coletado. lembre se: um objeto se torna elegível para ser coletado sempre quando não houverem mais variáveis de referência apontando para o objeto.
Mas eu não tenho certeza disso porque os objetos String não foram criados com new. >>>>
ps:Thingol parabens cara, que explicação bicho!!!
T
thingol
Eu trapaceei porque compilei o código do mtp e “disassemblei” com o javap para ver o que ele estava fazendo na verdade. Além disso olhei o fonte do JDK.
Tem muitas coisas que não consigo saber só de olhar, portanto uso esses truques. (Sou muito preguiçoso)
Agora com o Java 5 tem mais coisas “por debaixo dos panos” que o compilador faz por mim, então para saber exatamente o que ocorre eu preciso realmente ver a saída do compilador.
louds
Veja que a JVM pode coletar Strings que sofreram intern, a da Sun faz isso desde sempre.