Win a copy of Design for the Mind this week in the Design forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Garbage Collection

 
Akash Bhatt
Greenhorn
Posts: 25
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
public class XYZ{
ABC obj=new ABC();
mth1{
System.out.println(obj);
}

}
public class C{
public static void main{
XYZ obj1= new XYZ();
obj1.mth1();
}
}

in Class C when main method ends the object for XYZ is eligible for collection by the GC. But happens to the reference 'obj' created in XYZ..??? Is IT too eligible for collection..??
 
Shaan Shar
Ranch Hand
Posts: 1249
Java Spring Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by Akash Bhatt:
public class XYZ{
ABC obj=new ABC();
mth1{
System.out.println(obj);
}

}
public class C{
public static void main{
XYZ obj1= new XYZ();
obj1.mth1();
}
}

in Class C when main method ends the object for XYZ is eligible for collection by the GC. But happens to the reference 'obj' created in XYZ..??? Is IT too eligible for collection..??


If main threads ends up then all objects are eligible for Garbage Collection.

It's quite obvious.

Pls correct me If I am wrong.
 
Barry Gaunt
Ranch Hand
Posts: 7729
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Yes, the object of type ABC referenced by obj is eligible for garbage collection. You effectively have two linked objects with no active thread referencing either of them. Imagine a red kite tied to a blue kite. If you are holding the string to the blue kite and you let go, both kites will be blown away.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic