File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
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 Badass: Making Users Awesome this week in the Game Development 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: 3222
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