O coletor de lixo Java é um dos conceitos que mais custam as pessoas quando começa a programar em Java. Como funciona o coletor de lixo Java exatamente? Java divide a memória em dois blocos fundamentais, geração jovem e geração antiga.
na área de geração jovem Objetos que acabaram de ser armazenados no programa são armazenados. Esta área de memória é dividida em EDEN espaço, espaço de sobrevivência (S0 e S1)
a área do Éden é a área em que os objetos que acabamos de ser armazenados são armazenados.
quando o coletor O lixo passa, elimine todos os objetos que não têm mais referências no Espaço do Éden e sobreviventes movê-los para o espaço sobrevivente.
O coletor de lixo passará novamente e se houver um objeto de sobrevivente no espaço Survivor S0 irá movê-lo para sobrevivente S1
Após vários passes passados do coletor de lixo, os objetos que ainda estão vivos no espaço do sobrevivente deixam de ser considerados geração jovem e se tornarem consideradas antigas gerações.
Java coletor de lixo
Como funciona a área de geração antiga?. Esta área é dividida em duas partes, a primeira é chamada de geração de mandados e é onde objetos que têm um longo ciclo de vida são armazenados. A segunda zona é chamada de geração permanente e é onde as classes Java que as necessidades da JVM são carregadas.
Então, quando tem objetos que sobreviveram a vários coletores de lixo passarem do espaço de geração de sobrevivência para o espaço de geração de mandados.
Finalmente, o colecionador de lixo também passará pelo espaço do mandado para liberar objetos. Esta operação será feita de uma forma muito mais espaçada e quando o espaço estiver praticamente cheio.
Para ampliar Informações: Oracle Java Garbage Collector
Outros artigos relacionados: Java Collection Performance, Java Interface fluida, threads java