Deletar uma variavel da memoria

6 respostas
K

ola pessoal,

tem como deletar uma variavel da memoria?

eu gostaria de deletar essa

String[] exameAdTemp = new String[count];
                for( int i=0;i<exameAdTemp.length;i++){
		exameAdTemp[i] = "";

pois sempre aloco uma com uma logica minha e isso pode dar pau… alguem sabe como?

6 Respostas

I

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

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

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

eu vou colocar o codigo para vcs entenderem.

private class ActionAdicionarExame implements ActionListener {
		@Override
		public void actionPerformed(ActionEvent arg0) {

			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 EmpresaExame
				EmpresaExame empresaExame = new EmpresaExame();

				// Seta as informaões do objeto com os dados do formulario
				empresaExame.setNome(exameTextNome.getText());
				empresaExame.setEmpresa(exameTextEmpresa.getText());
				empresaExame.setData(exameTextData.getText());
				empresaExame.setTipo(exameComboBoxAdmissional.getSelectedItem().toString());
		
							
			
				for(int i=0; i<=6; i++){
					
					if(!exameAd[i].equals("")){
						
						
						count++;

					}
				}

				
				
				[b]
				String[] exameAdTemp = new String[count];
				for( int i=0;i<exameAdTemp.length;i++){
					exameAdTemp[i] = "";[/b]
					
				}
				
	
				for(int i=0, j=0; i<=6; i++){
					
					if(!exameAd[i].equals("")){
						
						exameAdTemp[j] = exameAd[i];
						j++;
						
						}
					
				}
				Arrays.sort(exameAdTemp);
				
				
				for(int i=0; i<count; i++){
					
					exameText[i].setText(exameAdTemp[i]);
					empresaExame.setE(i+1,exameText[i].getText());
				}
				
			
				
				for(int i=count; i<=6; i++){
					
					exameText[i].setText(exameAd[i]);
					empresaExame.setE(i+1,exameText[i].getText());
				
				}
				
				for(int i=0; i<=6; i++){
					
					exameText[i].setText("");
					exameAd[i] = "";
				}	
				for(int i=0; i<count; i++){
					
					exameAdTemp[i] = "";
				}	
				
				
				
				//adiciona o objeto na base de dados e atualiza a lista de EmpresaExame
				EmpresaExamePool.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

Acho q vc esta esquecendo de dar um delete no vetor, naum sei se isso tem em java!

K

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

Criado 10 de janeiro de 2009
Ultima resposta 11 de jan. de 2009
Respostas 6
Participantes 4