Na linguagem JAVA o programado não se preocupa em apagar um objeto que foi criado. Ele simplesmente programa, sabendo que eles não serão problema.
Para que esta mágica ocorra a JVM (Veja Java Virtual Machine (JVM) I e Java Virtual Machine (JVM) II ) conta com um recurso poderoso chamado coletor de lixo (Garbage Collector), comumente chamado de GC, abreviatura de seu nome em Inglês. Vamos adotar esta nomenclatura.
O GC é responsável por três ações numa JVM:
1) Limpar os objetos que não estão mais em uso (muitas pessoas acham que esta é a única função do GC)
2) Desfragmentar a memória
3) Alocar e liberar memória para o HEAP (Caso a memória mínima e máxima do JAVA estejam com valores diferentes, veja Tamanho do HEAP (-Xms -Xmx))