The Java Virtual Machine is a wonderful construct in many ways. Perhaps the most amazing part of it is the Garbage Collection process that automatically takes care of memory management. However – as with all automated solutions, it’s good to understand how they work, even if you don’t plan to manually tune them.