Dizem que que o Garbage Collector é incontrolável… e o System.gc()?
o System.gc();
vc nao chama explicitamente o Garbage Collector, mas sim isso quer dizer o seguinte:
“Hey VM, por favor querida, a hora que vc estiver disponível passa o GC por aqui, pq eu liberei uns objetos e preciso de um pouco de memória! Obrigado!” (VM gosta de educação)
iaehiaheihaiuehaiueh
Abraços!!!
Na verdade, o Garbage Collector e o System.gc é a mesma coisa…
O Garbage Collector eh uma Thread (processo paralelo), de nível mais inferior, onde enquanto seu programa eh executado, quando sobra um “tempinho” ele eh chamado para liberar espaco na memoria, apagando valores que nao possuem mais referencia, tipo, voce faz:
int i = 10;
i = 11;
Quando o Garbage Collector eh chamado, o espaco na memoria que possuia o valor 10 eh liberado, pois nada referencia para o 10.
O System.gc() eh um metodo que voce utiliza para chamar o Garbage Collector voluntariamente, pois as vezes voce quer ter certez\a de que ira sobrar algum espaco naquele momento.
Resumindo: O Garbage Collector eh um processo automatioce de Java que libera espaco na memoria para continuar a execucao de programas. System.gc() eh um metodo que voce chama quando nao quer esperar que o Garbage Collector execute automaticamente.
valeu()