If you have developed code in C or C++, you know the programmer was completely responsible for the memory allocation and de-allocation of objects. Ultimately this led to some very frustrating to find memory leaks. Thankfully in Java you