Garbage Collection

Ken Webb 2010-04-12T14:35:43Z

Garbage collection in Java, and in other garbage-collected languages, relies on the fact that all objects in an application are connected into a single network of linked nodes. In the wikipedia article, for tracing garbage collectors (the most common type of garbage collector), this is expressed in terms of reachability. Any object can be garbage collected if it is not reachable from a core set of root objects currently on the program stack. Reachability just means that there is a path from a root object on the stack to some other object in the application. The combination of all such paths is a network.

This is evidence that the Xholon proposition is true. The Xholon proposition states that "all software has some sort of basic structure, whether intended or accidental. This structure is best described as a system of linked nodes".

The garbage collection article states that there are multiple roots, but that they all are located on the stack. The stack can be considered as the ultimate root, the single starting point from which all objects are reachable. However, if a Java application has multiple threads, then each thread will have its own stack. The Xholon proposition implies that somewhere there is a single starting point from which all objects are reachable. Perhaps that single point is the garbage collector, or it may be a memory manager.

The Xholon proposition also states that nodes in the network "are organized hierarchically". When looked at from the perspective of memory management and garbage collection, the single root of this tree might be the overall memory system for the Java Virtual Machine.

return to main page