Sempre que eu criar uma nova instancia de uma classe (new cliente(); por exemplo) isto ira ocupar espaso de memória, correto?
Até quando esta classe fica na memória?
Vamos dizer que eu tenha um jframe para cadastro de cliente, e este tenha uma classe controle com os metodos de insert,delete, update para efetuar o acesso ao banco. Sendo assim, toda vez que o usuario clicar no botão Gravar eu irei criar uma nova instancia de controle para utilizar os metodos desta classe. Vamos dizer que o usuario entre cadastrar, alterar, deletar efetue uns 50 acessos. Eu terei 50 instancias da classe controle??
Eu não sei te dizer exatamente o tempo que fica na memória, mas porque ao invés de fica instanciando toda vez que o usuário clicar em algum botão você não instancia somente uma vez criando um atributo no escopo da sua classe (uma variável de ambiente ) ?
davidbuzatto
:shock: :shock: :shock:
d34d_d3v1l
Padrão de Projeto Singleton x]
prog.tiago
Boa noite,
Sempre que eu criar uma nova instancia de uma classe (new cliente(); por exemplo) isto ira ocupar espaso de memória, correto?
Até quando esta classe fica na memória?
Até o momento em que o Garbage Colector passar e levar essa instância. Uma instância fica vulnerável a ser coletada pelo GC a partir do momento que ela não é mais referenciada. De forma simplificada é isso:
Você tem uma instância da classe Universidade atribuída a u1 com a propriedade nome setada como “Metodista”, da mesma forma como tem uma outra instância com a propriedade nome setada como “Católica”. São dois objetos. Os dois continuarão ocupando espaço na memória até q um belo dia vc pode fazer isso:
u1=null;
Ao fazer isso perceba que o objeto atribuído inicialmente à u1 com o valor de nome setado como “Metodista” continua existindo, mas ele não é mais “alcançável” pelo sistema, pois não há variável q a referencia. Portanto ela é uma ótima candidata a ser coletada pelo Garbage Colector.
Espero ter ajudado de alguma forma.
Abraço
prog.tiago
Não havia lido esse trecho… :-o
Para esse caso, utilize o padrão singleton como nossos companheiros indicaram.
Abraços
davidbuzatto
Não havia lido esse trecho… :-o
Para esse caso, utilize o padrão singleton como nossos companheiros indicaram.
Abraços
Eu não indiquei nada não hein… E acho que o d34d_d3v1l tbm não.