When looking for GC eligibility what
you should look for is a reference that any runnable
thread can use to reach a specific object. Your observation that i3.i points to i4 is true. But there is no reference pointing to i3 that a thread can use to reach i3 so, if a thread can not reach i3 then it follows that a thread can not reach i4.