Introducing garbage collection
At some specific time, your application won't require to work with an instance anymore. For example, once you have calculated the perimeter of a circle and you have returned the necessary data in the Web Service response, you don't need to continue working with the specific Circle
instance anymore. Some programming languages require you to be careful about leaving live instances alive and you have to explicitly destroy them and deallocate the memory that it was consuming.
Java provides automatic memory management. The JVM runtime uses a garbage collection mechanism that automatically deallocates memory used by instances that aren't referenced anymore. The garbage collection process is extremely complicated, there are many different algorithms with their advantages and disadvantages, and the JVM has specific considerations that should be taken into account to avoid unnecessary huge memory pressure. However, we will keep our focus on the object...