Допустимые переменные для сборки мусора в Java

Я готовлюсь кOCPJP, и я застрял в следующем пробном вопросе об экзамене:

Дано:

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();
12.        Icelandic i3 = new Icelandic();
13.        i3 = i1; i1 = i2; i2 = null; i3 = i1;
14.    }
15. }

Когда достигается строка 14, сколько объектов подходит для сборщика мусора?

А. 0

Б. 1

C. 2

D. 3

Е. 4

F. 6

Их правильный ответ - E, то есть четыре объекта, но яЯ не уверен, почему. С моей точки зрения, i2 и его вес получат право на сборку мусора. Возможно яЯ что-то упустил, пожалуйста, сообщите.

Ответы на вопрос(3)

Ваш ответ на вопрос