Na verdade cara se voce tem um objeto
teste c1 = new teste();
e logo depois voce tem uma referencia teste que “aponta” pra c1
teste c2 = c1;
na verdade voce ainda tem 1 unico objeto, e 2 referencias pra esse objeto
se voce fizer isso :
teste c1 = new teste();
teste c2 = c1;
c1 = null;
Voce ainda nao terá nenhum objeto qualificado pra coleta, pois o objeto ainda existe, mas agora a única coisa que mudou foi que tem apenas 1 referência e não duas como antigamente.
Mas se acrescentarmos a linha
c2 =null;
Dai teremos c1, c2 sem referenciar nenhum objeto, e até agora criamos apenas um objeto na pilha, ele será o único a ser qualificado pra remoção. Espero ter sido claro. Valeu.
Cara não sei se vou falar besteira mas tenho que tentar aprender vou tirar a certificação logo logo…
para ficar elegivel ele tem que apontar pra nada ou seja nulo…
no caso o x2 = null seria um candidato ???
[]'s
Na verdade você está se confundindo. Se voce tem 1 objeto e 5 variaveis referenciando esse objeto, ele só será qualificado pra coleta quando os 5 objetos referenciarem objetos diferentes ou forem nulos.
Essa regra vale pra quando apenas uma variavel referencia 1 objeto. Dai fatalmente se essa variavel receber null, o objeto será qualificado, mas se em algum momento no teu código alguma outra variável estiver referenciando esse objeto, ele ainda continua vivo pro terror do Garbage Collector.