Java tem um Garbage Collector (GC): um processo automático que libera a memória ocupada por objetos que não são mais usados no programa.
Você não precisa gerenciar memória manualmente como em C/C++. O GC identifica objetos “mortos” (sem referências) e limpa eles da memória. Isso evita vazamentos de memória e melhora a performance — mas também pode causar pausas no programa (GC pauses).
Quando isso acontece?
O GC é acionado automaticamente quando a JVM precisa de memória. Você também pode chamar System.gc(), mas o Java só vai tentar rodar o GC — não é garantido.
Um exemplo bacanudo seria esse:
public class GarbageCollectorDemo {
public static void main(String[] args) {
// Criando um objeto
MyObject obj1 = new MyObject("Objeto 1");
// Perdendo a referência ao objeto — agora só o GC pode limpar
obj1 = null;
// Sugerindo que o Garbage Collector rode
System.gc();
System.out.println("Final do programa");
}
}
class MyObject {
private String name;
MyObject(String name) {
this.name = name;
}
// Método chamado pelo GC antes de destruir o objeto
@Override
protected void finalize() {
System.out.println(name + " foi coletado pelo Garbage Collector!");
}
}
Dicas rápidas:
- Evite criar objetos desnecessários.
- Use profiling para identificar vazamentos de memória.
- Ajuste as opções da JVM para escolher o GC certo para sua aplicação.
Valeu meus Queridos, até a próxima
Top comments (0)