Olá edprado,
De acordo com o Javadoc:
Calling the gc method suggests that the Java Virtual Machine expend effort toward recycling unused objects in order to make the memory they currently occupy available for quick reuse. When control returns from the method call, the Java Virtual Machine has made a best effort to reclaim space from all discarded objects.
"Chamar o método gc sugere que a Máquina Virtual Java se esforce para reciclar objetos que não são mais usados para tornar a memória que eles ocupam disponível para reuso. Quando o controle retorna da chamada do método, a JVM fez o máximo que ela pôde para obter o espaço de todos os objetos descartados"
O método gc funciona sim (que bom
), mas o "funcionar" dele não quer dizer executar o algoritmo do garbage collection, e sim, sugerir a JVM que execute o GC quando ela decidir que é melhor.
Não dependa disso no seu código, a JVM já tem seus algoritmos que detectam quando é melhor chamar o GC. O método existe pra você dizer que quer, mas ele não garante executar o GC na hora que você o chamou.
Até mais,