File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes garbage collection assigning null value Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Soft Skills this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "garbage collection assigning null value" Watch "garbage collection assigning null value" New topic
Author

garbage collection assigning null value

rohan mehta
Greenhorn

Joined: Apr 15, 2001
Posts: 11
Hi,
Can any one help me in this qtn from javaprepare.com exam1
Q) At what stage in the following method does the object initially referenced by s becomes available for garbage collection. Select the one correct answer.

void method X() {
String r = new String("abc");
String s = new String("abc");
r = r+1; //1
r = null; //2
s = s + r; //3
} //4
a)Before statement labeled 1
b)Before statement labeled 2
c)Before statement labeled 3
d)Before statement labeled 4
e)Never.

Correct Answer is D) as given in that site.
i am not clear with this topic.
suppose an object has been assigned a null value in a method.
will it be available for GC immediately
(OR)
will it be available for GC only after that method is finished executing.
i will appreciate if anyone can explain me in detail.
Thanks bye
rohan

Lam Thai
Ranch Hand

Joined: Apr 02, 2001
Posts: 117
Originally posted by rohan mehta:
Hi,
Can any one help me in this qtn from javaprepare.com exam1
Q) At what stage in the following method does the object initially referenced by s becomes available for garbage collection. Select the one correct answer.

void method X() {
String r = new String("abc");
String s = new String("abc");
r = r+1; //1
r = null; //2
s = s + r; //3
} //4
a)Before statement labeled 1
b)Before statement labeled 2
c)Before statement labeled 3
d)Before statement labeled 4
e)Never.

Correct Answer is D) as given in that site.
i am not clear with this topic.
suppose an object has been assigned a null value in a method.
will it be available for GC immediately
(OR)
will it be available for GC only after that method is finished executing.
i will appreciate if anyone can explain me in detail.
Thanks bye
rohan

Hello Rohan,
First, let's take a look at statement
String r = new String ("abc");
This statement creates a memory address called object reference that points to another memory block that contains "abc".
Second, the same thing happens in the next statement,
String s = new String ("abc");
Again this statement creates another memory address or an object reference that points to another memory block that contains "abc".
So the two statements create two different addresses / object references that point to two different memeory blocks that contain exact the same content, "abc"
Now, let's take a look at the statement at line //3, s = s + r. This statement will create a new address or object reference to store the result from the RHS expression. So after line //3, which is now line //4, the memory block that contain the string "abc" that was created for the old s which now has no reference that points to it. Hence that block of memeory is now READY for GC at line //4. Note the word READY does mean only that "hey GC dude, you can collect this block anytime you are ready." It however does not say "GC get rid of it right now."
By the way, line //4 happens to be at the end of the method in your example. It does not have to be. It could be another statement in the body of that method. So the answer should have been "old s is ready for garbage collection right after s points to new memory block (i.e next instruction in the code)."
Hopes that helps.
Take care,
Lam


[This message has been edited by Lam Thai (edited April 18, 2001).]
shailesh sonavadekar
Ranch Hand

Joined: Oct 12, 2000
Posts: 1874
good explaination , Lam. What you said about line 4 thing also is correct. I hope Rohan , your doubt is clear.
Your Friendly bartender
Shailesh.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: garbage collection assigning null value