GC
Closely related to the memory areas of JVM is GC. Conceptually, GC is an automatic storage-management system. It manages how allocations in memory that no longer live should be freed, thereby making the memory available for new allocations. From this, we reveal that the golden rules of GC are as follows:
Collect all garbage: Due to concerns of, for example, optimizations, this rule can be somewhat floating when interpreted in various GC implementations. It is, therefore, sometimes more correct to rephrase the rule as collect all garbage, eventually.
Never collect a live object: This, on the other hand, is an absolutely sacred rule. If it is broken, the GC cannot be trusted or used at all, as faults in the software that executes in JVM will follow.
The Java GC specification does not specify any particular algorithm for how collection is supposed to be done as long as the preceding rules are abided to. It is, therefore, possible to choose an algorithmic strategy, with its related implementation...