Coletor de lixo
Origem: Wikipédia, a enciclopédia livre.
O garbage collector (ou coletor de lixo), também conhecido por sua sigla GC, é um processo usado no gerenciamento de memória nos sistemas computacionais. Com este recurso, é possível recuperar a zona de memória que um programa não utiliza mais. Quando isto não ocorre pode acontecer a chamada perda de memória, um erro comum que pode levar ao término não-desejado do programa em execução por esgotamento da memória livre. Na linguagem de programação Java, ao contrário do que ocorre em linguagens como C++, o garbage collector foi implementado de maneira que seja usado automaticamente: assim que o garbage collector encontra um objeto para o qual não existe referência, a área de memória onde reside tal objeto é marcada para desalocação. Desta forma, em Java, evitam-se problemas que ocorrem em linguagens em que a coleta de lixo é manual (formalmente declarada pelo programador, como acontece em C++, C e Pascal), problemas do tipo de esgotamento de memória (pelo esquecimento da liberação de um recurso pelo programador) ou liberação de um recurso que ainda está em uso.
Contudo, em informática poucas vezes uma solução não cria novos problemas. Assim, se o garbage collection evita o pesadelo da remoção manual, por outro lado ela cria problemas de desaceleração inesperada e não determinística de programas. Isto é: o garbage collector é um processo relativamente demorado e de alta prioridade, que tem impacto em todo o programa que está sendo executado. Se no ponto onde ele for chamado o programa estava envolvido com outra atividade (e não apenas aguardando), esta atividade será atrasada.
Esta é uma das razões pelas quais os detratores do Java recusam a ela a possibilidade de ser usada em sistemas de tempo real.
Lua, Lisp e Python também são linguagens que utilizam do coletor de lixo em seu interpretadores.