PessoALL, bom dia!
Alguem poderia me explicar o que é este coletor de lixo em java.
Para que serve?
Quando usar?
Por favor se der exemplifique.
Desde já agradeço.
Marcos
PessoALL, bom dia!
Alguem poderia me explicar o que é este coletor de lixo em java.
Para que serve?
Quando usar?
Por favor se der exemplifique.
Desde já agradeço.
Marcos
É um processo que ocorre automaticamente… você não precisa se preocupar em usar ou não. O gerenciador automático faz uma verificação de tempos em tempos marcando objetos que não estejam sendo mais referenciados no programa. Assim que o programa fica ocioso, estes objetos marcados são destruidos e com isso a memória é liberada.
Em Java o programador não precisa desalocar memória, com em C ou C++(outras linguagens). Java tem um coletor de lixo que possui a função de gerenciar memória, otimizando a mesma. O coletor de lixo libera a memória mantida por um objeto se não houver mais nenhuma referência para ele. Ex.:
[color=“green”]Runtime rt = Runtime.getRuntime();
long mem = rt.freeMemory();
System.out.printn("Memória Livre: " + mem);
// … algum código
System.gc();
// …
mem = rt.freeMemory();
System.out.println("Memória Livre: " + mem);[/color]
O código acima obtém o ambiente de execução com o método estático getRuntime() da classe Runtime. O método freeMemory() retorna a memória disponível no ambiente runtime. A linha System.gc() faz a chamada explícita do coletor de lixo.
Problemas com a utilização de memória podem surgir quando os objetos contém variáveis de instância que são iniciadas no construtor, ocupam um grande quantidade de memória e não são mais utililzadas no restante da aplicação. Isso pode degradar o desempenho de um código.
Mais detalhes, vc pode encontrar em www.jspbrasil.com.br
Wellington Candeia
Em Java o programador não precisa desalocar memória, com em C ou C++(outras linguagens). Java tem um coletor de lixo que possui a função de gerenciar memória, otimizando a mesma. O coletor de lixo libera a memória mantida por um objeto se não houver mais nenhuma referência para ele. Ex.:
[color=“green”]Runtime rt = Runtime.getRuntime();
long mem = rt.freeMemory();
System.out.printn("Memória Livre: " + mem);
// … algum código
System.gc();
// …
mem = rt.freeMemory();
System.out.println("Memória Livre: " + mem);[/color]
O código acima obtém o ambiente de execução com o método estático getRuntime() da classe Runtime. O método freeMemory() retorna a memória disponível no ambiente runtime. A linha System.gc() faz a chamada explícita do coletor de lixo.
Problemas com a utilização de memória podem surgir quando os objetos contém variáveis de instância que são iniciadas no construtor, ocupam um grande quantidade de memória e não são mais utililzadas no restante da aplicação. Isso pode degradar o desempenho de um código.
Mais detalhes, vc pode encontrar em www.jspbrasil.com.br
Wellington Candeia