Multiple choice technology programming languages

Given: class CardBoard { Short story = 5; CardBoard go(CardBoard cb) { cb = null; return cb; } public static void main(String[] args) { CardBoard c1 = new CardBoard(); CardBoard c2 = new CardBoard(); CardBoard c3 = c1.go(c2); c1 = null; // do Stuff } } When // doStuff is reached, how many objects are eligible for GC?

  1. 0

  2. 1

  3. 2

  4. Compilation fails

  5. It is not possible to know

  6. An exception is thrown at runtime

Reveal answer Fill a bubble to check yourself
C Correct answer
Explanation

At // doStuff, two CardBoard objects are eligible for garbage collection: c1 and the object originally referenced by c1 before go() was called. The go() method sets its local parameter cb to null, but this does not affect the actual c2 object. After c1 = null, the first CardBoard object becomes eligible. c2 remains referenced.