Acredito que tenho dois objetos para serem coletados. O objeto t e o Float x. (Correto).
Goastaria de confirmar o seguinte, se eu não atribuisse um valor para Float x, ele receberia null, Então eu teria apenas um onjeto para ser coletado? Certo?
E se o Float x fosse float x? Eu também teria apenas um objeto a ser coletado, pois float x não é objeto então não fica no heap.
Certo?
Com certeza esse foi erro de datilografia, vc ta chamando um construtor de uma classe q n existe, seria no caso então:
Test t = new Test();
Mas td bem, deu pra intender =PP
O danado é q nessa linha:
Vc ta chamando o método getObject() e n tá passando parâmetro nenhum. Ele precisa de um parâmetro do tipo Test. Acredito q seja mais um erro de datilografia, e como só houve um único objeto instanciado nesse código, creio eu q vc queria passar ele.
Se for isso acredito q não há objetos a serem coletados.
As variáveis t e t2 estão null, porém a variável t1 ainda aponta para o objeto criado, logo ele n está propenso a coleta. Acredito q seja isso.
Posso estar errado (se tiver, alguém me corrija), mas acho que não há nenhum objeto apto para coleta.
Você tem 2 objetos instanciados:
Test t = new Teste();
Float x = 5.2f;
Depois t1 referencia o mesmo objeto que t:
Testt1=t;
Depois t2 não referencia nada (null):
Testt2=t.getObject(t);
E depois vc anula a referencia de t:
t=null;
Mas t1 ainda continua referenciando o objeto criado…
R
RafaelVS
Marcos Paiva:
Acredito que tenho dois objetos para serem coletados. O objeto t e o Float x. (Correto).
Goastaria de confirmar o seguinte, se eu não atribuisse um valor para Float x, ele receberia null, Então eu teria apenas um onjeto para ser coletado? Certo?
E se o Float x fosse float x? Eu também teria apenas um objeto a ser coletado, pois float x não é objeto então não fica no heap.
Certo?
acho que, como o diego2005 citou, t1 ainda vai estar apontando para o objeto que você criou e, portanto, nenhum objeto estará elegível ao GC. Mas o que vc falou é verdade: quando um objeto for elegível ao GC se seus atributos forem do tipo referencia e tiverem algum objeto, esses objetos tb estarão elegíveis. Isso aconteceria no seu exemplo se vc comentasse a linha que faz Test t1 = t;