Boa noite pessoal.
Minha duvida e sobre o gerenciamento de memoria do java. Eu sei que o garbage collection e o reponsavel por liberar objetos da memoria, e que para isso um objeto não pode ter nenhum referencia. Ok, vou explicar minha situação.
Estou desenvolvendo um sistema, padrão mvc, onde os formularios são gerenciados pelas classes de controle.
tenho uma classe principal do pacote controle, que chama o formulário principal. Nesta classe do pacote controle, registro os ouvindo dos botões do menu, que esta no formulário. Ou seja, meu formulario não possui codigo algum, apenas os componente que faço a captura na classe controle.
nesta classe principal, faço a criação de um objeto Cidade. No construtor deste objeto ira ser criado o formulário de Cidade.
Minha duvida é como faço para liberar este objeto Cidade da memoria?
da maneira que esta , toda vez que o usuario clicar o menu Cidade, sera criado um outro objeto , e assim vai. Como liberar esse objeto para o garbage collection?
se o usuario fechar a tela de cidade e clicar novamente no menu cidade. neste instante sera criado outro objeto, sendo que o anterior ainda estava na memoria.
Eu sei que definir uma referencia como null, libera o objeto para o coletor de lixo, mas não posso fazer isso, porque o objeto deve ficar ativo para ouvir as ações dos botões que o usuário clica no form cidade.
Como posso resolver isso?