Junior — Middle
Como é que o mecanismo de recolha de lixo liberta a memória não utilizada em Java?
sobes.tech IA
Resposta da IA
No Java, o mecanismo de recolha de lixo (Garbage Collector, GC) liberta automaticamente a memória ocupada por objetos que já não são utilizados pelo programa.
Princípio de funcionamento:
- Detecção de acessibilidade dos objetos: O GC rastreia objetos aos quais não há ligações de partes ativas do programa (por exemplo, da pilha de chamadas ou variáveis estáticas).
- Marcação: Todos os objetos acessíveis são marcados como vivos.
- Limpeza: Os objetos não marcados como vivos são considerados lixo e a sua memória é libertada.
O Java usa diferentes algoritmos de GC (por exemplo, Mark-and-Sweep, Generational GC), que otimizam o trabalho com a memória e minimizam as pausas na execução da aplicação.
Exemplo: se um objeto é criado dentro de um método e, após sair do método, não há referências a ele, o GC libertará com o tempo a memória ocupada por esse objeto.