Boa tarde, tenho uma duvida, qdo estou cadastrando um cliente ou fornecedor ou qlq coisa eu instancio o form de cadastro e instancio todos os objectos, classes e etc…
Qdo vou incluir um novo cliente ou fornecedor ou etc, eu nao instancio novamente pq ja esta, eu só limpo td com setText(null) e depois setText(.getText()).
Isso prejudica, ajuda ou tem algum problema em fazer desta forma ?
Agradeço a ajuda
Não sei se é do seu conhecimento, mas caso não seja:
O Java possuí um carinha chamado garbage collector (coletor de lixo), a ideia dele é mais ou menos assim, de tempos em tempos,esse carinha verifica se todos os objetos alocados na memória estão sendo referenciados por alguma variável. caso tenha algum objeto sem ser referenciado, ele destrói o objeto e libera a memória ocupada por ele.
Exemplo:
String frase = "Uma frase qualquer...";
Acima nós criamos um objeto do tipo String na memória, onde a frase está referenciando este objeto, a partir do momento em que fizermos
frase = null;
A variável frase não mais referencia o objeto, ou seja, o “Lixo” alocado na memória não está sendo apontado por mais nenhuma variável do seu programa. Quando o garbage collector realizar a checagem, ele irá coletar o “Lixo” e liberar a memória.
Vlw Jonathan, to sabendo do GC sim, mas fazendo como eu disse prejudica a performance do sistema, nao instanciando toda vez q for incluir um novo cadastro ?
Não prejudica em nada, o único problema que pode ocorrer seria o seguinte, esquecer de matar todas as informações atribuídas ao objeto instanciado antes de utiliza-lo novamente.
vamos imaginar uma classe model
de cor
com os seguintes atributos:
int id;
String nome;
String indsituacao;
Exemplo:
modelCor mc = new modelCor(); //instanciamos a classe cor
mc.setId(1); //setando id
mc.setNome("Branco"); //setando nome
mc.setIndSituacao("Inativo"); //setando situação
depois limpamos a classe da seguinte forma:
mc.setId(null); //setando id null
mc.setNome(null); //setando nome null
mc.setIndSituacao("Inativo"); //esquecemos de setar a situação para null
depois utilizamos a nossa classe na mesma instância somente com id e nome
mc.setId(2); //setando id
mc.setNome("Vermelho"); //setando nome
//não setamos uma nova situação
//nesse caso você percebe que o objeto ficará da seguinte forma abaixo ?
id -> 2 //novo id
nome -> Vermelho //novo nome
Situação -> Inativo //antiga situação
Este é o único problema que consigo imaginar no caso de utilizar a mesma instância, nesse caso deve-se ter um cuidado maior.
Conseguiu compreender a ideia, não sei se fui muito claro ?!
Sim, tendi sim, vlw msm pelas dicas !