The Java programming language provides a system-level thread to track memory allocation.
Garbage collection has the following characteristics:
• Checks for and frees memory no longer needed
• Is done automatically
• Can vary dramatically across JVM implementations