[RESOLVIDO] Garbage Colector

Given: 3. interface Animal { void makeNoise(); } 4. class Horse implements Animal { 5. Long weight = 1200L; 6. public void makeNoise() { System.out.println("whinny"); } 7. } 8. public class Icelandic extends Horse { 9. public void makeNoise() { System.out.println("vinny"); } 10. public static void main(String[] args) { 11. Icelandic i1 = new Icelandic(); 12. Icelandic i2 = new Icelandic(); 13. Icelandic i3 = new Icelandic(); 14. i3 = i1; i1 = i2; i2 = null; i3 = i1; 15. } 16. } When line 15 is reached, how many objects are eligible for the garbage collector?

De acordo com o livro a resposta correta é 4.

Pelo q entendi seriam as 3 instancias de Icelandic e o objeto weigth, mas pq só 4, e não 6? 3 Icelandics e 3 weigths?

Calel,

O terceiro objeto e seu respectivo objeto Long vão para a lixeira na linha 14.
Assim, quando chegar na linha 15 só restarão o primeiro e segundo objeto com seus respectivos objetos Long, fazendo com que a resposta certa seja realmente 4.

Espero ter ajudado :wink:

Entendi, muito obrigado Slunce, tava perdido nessa XD