• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Garbage collection....

 
santhosh.R gowda
Ranch Hand
Posts: 296
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi friends
As we know java has automatic memory management by the process name called garbage collector. the JVM will call this GC for releasing the memory of the objects thats has no more references. as we know objects are eligable for garbage collection by Nulling a Reference,Reassigning a Reference Variable and Isolating a Reference. So in my example

in this code the reference variable myRef is pointing to myclassObject as the main method runs out of its scope does the JVM make myRef eligable for GC.
suppose i mage a change

when could my reference variable myRef is eligable for GC ?
 
Ankit Garg
Sheriff
Posts: 9495
22
Android Google Web Toolkit Hibernate IntelliJ IDE Java Spring
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Santhosh, let me modify your code a bit



Now when line #10 is executed, then this is the object representation in the heap



So now in this object of myclass, the ref points to itself. So basically myRef in main method and myRef.ref point to the same object. Now when we set myRef to null, it no longer points to this object. And myRef.ref also cannot be accessed as myRef now points to null. So basically you cannot access this object.



Thus this object will be eligible for GC...
 
Rob Spoor
Sheriff
Pie
Posts: 20369
44
Chrome Eclipse IDE Java Windows
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
This is called an island of isolation.
 
santhosh.R gowda
Ranch Hand
Posts: 296
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Does the object leave in heap even after the code run's by the JVM.
 
Campbell Ritchie
Sheriff
Pie
Posts: 47229
52
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
santhosh.R gowda wrote:Does the object leave in heap even after the code run's by the JVM.
Ankit has already given you the details. The correct answer is "don't know" because the garbage collector probably doesn't run during the execution of such a small application.
 
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic