A alocação de objetos é feita dinamicamente com o operador new.
A memória não é infinita, podendo se esgotar, o que pode fazer new falhar.
A recuperação de memória livre de objetos não usados é crucial em esquemas de alocação dinâmica.
Em algumas linguagens, a liberação de memória é manual.
Java usa a coleta de lixo para liberar memória automaticamente.
A coleta de lixo ocorre em segundo plano, sem intervenção do programador.
Quando um objeto não tem mais referências, sua memória é liberada.
A memória reciclada pode ser usada para novas alocações.
A coleta de lixo ocorre esporadicamente durante a execução do programa.
A coleta de lixo é executada quando há objetos a serem reciclados e necessidade de reciclá-los.
A coleta de lixo é demorada e ocorre apenas quando apropriado.
Não é possível saber exatamente quando a coleta de lixo ocorrerá.