This is the process where by the Virtual Machine deletes objects from memory when it determines that they are no longer needed. The process is automatic and transparent to the user. This frees the programmer from having to manually free unused memory which is often tedious and error prone. Memory which has not been freed is the main cause of memory leaks.