Eu não entendi o que você quis dizer com o texto acima, mas de qualquer forma, para você forçar a coleta de lixo com o garbage collector basta chamar o método gc();
Exemplo:
System.gc();
K
Kaiser
oi amigo,
é pq eu tenho uma logica que que eu declaro um vetor com um contador , sempre que uso a logica preciso mudar a variavel, a quantidade do vetor, entao eu gostaria de saber se tem como logo apos eu sair da logica eu excluir essa variavel e recriar quando entrar na logica, entendeu?
quero saber se tem como tirar ela da memoria e recriar em outro lugar da memoria que seja, para que o vetor nao aponte para a antiga
T
tinorberto
Eu acho que não precisa se preocupar em deletar essa variavel da memoria , ela deve ser uma estrutura bem pequena , por outro lado ella sera destruida quando sair do metodo … Se vc predende mesmo fazer isso chame o coletor de lixo System.gc(); mas antes disto vc precisa colocar a matriz igual a null para que ela seja apagada (coletada) , mas isso não garante que o coletor de lixo vai limpar a variavel pois isso e gerenciado por ele .
Minha opnião deixe igual esta …uma hora a sua variavel sera deletada …
Flw
K
Kaiser
eu vou colocar o codigo para vcs entenderem.
privateclassActionAdicionarExameimplementsActionListener{@OverridepublicvoidactionPerformed(ActionEventarg0){if(exameTextNome.getText().length()==0){JOptionPane.showMessageDialog(null,"Nome do paciente não informado","Erro!",JOptionPane.ERROR_MESSAGE);return;}else{// Cria e Instancia um objeto do tipo EmpresaExameEmpresaExameempresaExame=newEmpresaExame();// Seta as informaões do objeto com os dados do formularioempresaExame.setNome(exameTextNome.getText());empresaExame.setEmpresa(exameTextEmpresa.getText());empresaExame.setData(exameTextData.getText());empresaExame.setTipo(exameComboBoxAdmissional.getSelectedItem().toString());for(inti=0;i<=6;i++){if(!exameAd[i].equals("")){count++;}}[b]String[]exameAdTemp=newString[count];for(inti=0;i<exameAdTemp.length;i++){exameAdTemp[i]="";[/b]}for(inti=0,j=0;i<=6;i++){if(!exameAd[i].equals("")){exameAdTemp[j]=exameAd[i];j++;}}Arrays.sort(exameAdTemp);for(inti=0;i<count;i++){exameText[i].setText(exameAdTemp[i]);empresaExame.setE(i+1,exameText[i].getText());}for(inti=count;i<=6;i++){exameText[i].setText(exameAd[i]);empresaExame.setE(i+1,exameText[i].getText());}for(inti=0;i<=6;i++){exameText[i].setText("");exameAd[i]="";}for(inti=0;i<count;i++){exameAdTemp[i]="";}//adiciona o objeto na base de dados e atualiza a lista de EmpresaExameEmpresaExamePool.getInstance().add(empresaExame);EmpresaExamePool.getInstance().sortByNome();EmpresaExamePool.getInstance().update();updateTabelaEmpresaExame(EmpresaExamePool.getInstance().getArrayList());//atualiza a tabela de suprimento do formulario apartir de MatrizPool}}}
oq isso faz,
toda vez que eu acesso o botao ele cria a variavel no tamanho que o CONT determinar, entao se eu voltar pro botao e colocar um valor que seja diferente do CONT na proxima vez que for apertado da erro, se eu adicionar com a mesma quantidade funciona, por isso gostaria de deletar ela e recriar sempre que entrar.
I
is.matt.r
Acho q vc esta esquecendo de dar um delete no vetor, naum sei se isso tem em java!
K
Kaiser
ja achei o erro, era so eu zerar a variavel count logo na entrada que resolvia… nao vou precisar fazer nd de deletar variavel da memoria nao, vlw a ajuda de todos