Objects are garbage collected when no live
thread can access then. One way of achieving that is by nulling all the references to that object.
But that doesn't work always:
There are still references to the
Test objects however no live thread can access them. The JVM recognizes these Islands of Objects and GC'd them.
Run:
wouter@wouter-laptop:~/temp$ javac Test.java
wouter@wouter-laptop:~/temp$ java -verbose:gc Test
Start
[GC 232K->120K(32256K), 0.0009260 secs]
[Full GC 120K->103K(32256K), 0.0037630 secs]
End