Olá a todos,
Em meio aos estudos que estou fazendo percebi algo sobre a coleta de lixo de componentes swing em java. Andei dando uma pesquisada na web e aqui no fórum, mas não achei nenhuma explicação que eu acredito que seja bem esclarecida.
Estou utilizando o profiler do netbeans para acompanhar a vida e morte dos objetos em um sistema que estou desenvolvendo.
Achei interresante que quando mando passar o GC pelo profiler, o GC coleta os objetos normalmente, mas quando se trata de componentes swing ele não coleta.
Fiz um teste aqui e pude notar que mesmo que eu abra um JInternalFrame sem nada e nenhuma referência, quando fecho o JInternalFrame e mando passar o GC o objeto continua a existir na memória.
Gostaria de entender melhor porque isso acontece e decidir vir aqui ao fórum debater essa questão com vcs. Por que quando se trata de componentes swing existe essa dificuldade do GC em coletar? Pude fazer vários testes aqui e nada de coletar o objeto da memória. Cheguei a abrir 30 vezes o mesmo JInternalFrame e mesmo passando o GC os 30 objetos continuaram alocados na memória, porém os outros objetos de classes que não envolvem componentes swing são coletados normalmente.
Porque o GC funciona assim com objetos swing?
