aspose file tools*
The moose likes Beginning Java and the fly likes Garbage Collection Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Garbage Collection" Watch "Garbage Collection" New topic
Author

Garbage Collection

deshdeep divakar
Ranch Hand

Joined: Apr 19, 2004
Posts: 91
class I {
private String name;
public String toString() {return name;}
public I(String s) {name = s;}
}
class J {
private static void m1(I[] a1) {a1 = null;}
public static void main (String[] args) {
I[] a1 = new I[3]; // 1
a1[0] = new I("A"); // 2
a1[1] = new I("B"); // 3
a1[2] = new I("C"); // 4
m1(a1);
for (int i = 0; i < a1.length; i++) { //5
System.out.print(a1[i]);
}}}

After method m1 returns, the object created on which line is eligible for garbage collection?

a. 1
b. 2
c. 3
d. 4
e. Compile-time error
f. Run-time error
g. None of the above

This is a question from previous paper.
Q.When the control will return to m1 ,the array a1 will be null so at line 5 there should be a compile time error?


"Do not be afraid of going slow, be afraid of standing still"
Dirk Schreckmann
Sheriff

Joined: Dec 10, 2001
Posts: 7023
Moving this to the Beginners forum...


[How To Ask Good Questions] [JavaRanch FAQ Wiki] [JavaRanch Radio]
Julian Kennedy
Ranch Hand

Joined: Aug 02, 2004
Posts: 823
Hi Deshdeep,

Consider pass by value versus pass by reference. Java is always ... which one? How does that apply here?

Also, even if the object is null, a) the compiler won't know that (it's a runtime condition) and b) it's a valid state. You'll only get an error (NullPointerException at runtime) if you try to access a field or method on a null object.

I hope that helps to clarify.

Jules
deshdeep divakar
Ranch Hand

Joined: Apr 19, 2004
Posts: 91
Thanx
 
wood burning stoves
 
subject: Garbage Collection