• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Taking out the Garbage!

 
village idiot
Posts: 1208
1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
This is from Whizlabs tutorial for the certificaton exam. I don't follow the explanation for the sample code. To me, there should be 1 object available for gc after line 4. Here's the code:
Garbage collection
Exercise page 5 of 5

Question:

How many objects will be eligible for garbage collection after line 7?

Choices:

A. 0
B. 1
C. 2
D. 3
E. Code does not compile
Correct choice:

B
Explanation:

Among the three objects created in lines 1, 2, and 3, only the Integer object is eligible for garbage collection at the end of line 7. The reference variable a, which originally referred to the Integer object is made to refer to the String object in line 5. So the Integer object is eligible for garbage collection after line 5, since there are no variables referring to it. The variables b and c refer to the String and Long objects in lines 6 and 7, so they are not eligible for garbage collection.

I thought that the Integer object would be available after line 4, when a is set to null. Am I wrong, or is the answer wrong?


[ January 08, 2005: Message edited by: Barry Gaunt ]
 
Ranch Hand
Posts: 79
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
You are 100% correct
 
Ranch Hand
Posts: 7729
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
"I thought that the Integer object would be available after line 4, when a is set to null."

Yes, this is true. So it must be still garbage collectable after line 7 (if it has not been already collected). The other three objects the String literal "100" and the Long(100) and String("100") are still referred to. So the answer is correct (1 object) but their explanation has a glitch.
[ January 08, 2005: Message edited by: Barry Gaunt ]
reply
    Bookmark Topic Watch Topic
  • New Topic