This week's book giveaway is in the Jobs Discussion forum.
We're giving away four copies of Java Interview Guide and have Anthony DePalma on-line!
See this thread for details.
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes Garbage Collection Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Java Interview Guide this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "Garbage Collection" Watch "Garbage Collection" New topic

Garbage Collection

Ranch Hand

Joined: Nov 22, 2008
Posts: 18944
There are a number of labels in the source code below. These are labeled a through j. Which label identifies the earliest point
where, after that line has executed, the object referred to by the variable first may be garbage collected?

class Riddle {
public static void main(String[] args) {
String first, second;
String riddle;
if (args.length < 2)
a: first = new String(args[0]);
b: second = new String(args[1]);
c: riddle = "When is a " + first;
d: first = null;
e: riddle += " like a " + second
+ "?";
f: second = null;
g: System.out.println(riddle);
h: args[0] = null;
i: args[1] = null;
Select the one right answer.
a. d:
b. e:
c. h:
d. i:
e. j:
Answer is a. but in my opinion it should be b.
Tony Alicea

Joined: Jan 30, 2000
Posts: 3226
Between lines (a) and (d) the only reference to the String created in (a) is variable <CODE>first</CODE>. So when it is set to null in line (d), the original object is eligible for GC.

Tony Alicea
Senior Java Web Application Developer, SCPJ2, SCWCD
I agree. Here's the link:
subject: Garbage Collection
jQuery in Action, 3rd edition