Take the object references shown in Figure 2, for example. If there are no other references to Obj1, Obj2, or Obj3, then it will be reclaimed. This is a handy tip to remember. I've seen people manually assign all references in a collection to null , rather than just making the reference to the collection itself null . Aside from easier code, it is less computationally expensive as well.
Cyclical references are no protection.
The garbage collector thread normally runs as a very low process thread, but once started, it might not be suspended until its task is complete. At the wrong time, garbage collection could introduce a performance degradation. There are two ways to improve system performance through garbage collection. The first is to explicitly invoke the garbage collector during idle periods, or before creating a large number of objects. The exact delay between invoking and returning from the method will vary from JVM to JVM, and depending on the amount of objects to be freed.