Caros amigos do guj. :lol:
Estou trabalhando com estilo de janelas MDI (JFrame + JInternalFrame), e testei, abrindo na aplicação quase 10 megas de jinternalframe e não limpar a memória para novos processamento.
Penso desta forma, que meu usuário ficará com sistema aberto o dia inteiro, e será melhor para não manter o “out of memory”, tentei usar o dispose() mas ele não libera.
Qualquer coisa estamos aí :thumbup:
cv1
Junho 7, 2005, 10:44am
#2
Ja deu uma lida no Javadoc do dispose()?
Para falar verdade, nos meus IDEs, tanto eclipse qto netbeans, ele não tem javadoc para palavras reservadas… vou no site da sun!
Editado:
Passei no site : http://java.sun.com/j2se/1.5.0/docs/api/index.html e não achei o dispose
Valeu :thumbup:
keller
Junho 7, 2005, 11:17am
#4
cv1
Junho 7, 2005, 11:38am
#5
E… uhh… dispose() nao eh palavra reservada - eh um metodo
bobiei… :oops:
Mas ele diz que que somente oculta… mas ele não libera a memória, como liberar?
Editado:
http://www.dcc.unicamp.br/~cmrubira/aacesta/java/javatut9.html#RTFToC11/:
A presença de coleta automática de lixo torna o conceito de destrutores um pouco diferente de seus equivalentes em outras linguagens orientadas a objetos. Em Java destrutores são métodos chamados pelo sistema quando a memória de um objeto está para ser liberada pelo coletor automático de lixo (não quando está para ser coletada).
A sintaxe dos destrutores é a seguinte:
protected void finalize() {
//codigo para arrumar a casa, antes que o objeto seja apagado
}
Note que o que caracteriza o construtor é ter o mesmo nome da classe, já o destrutor é caracterizado por possuir o nome finalize. Você pode chamar o destrutor, mas isso não implica que o objeto será deletado. Ao contrário dos construtores, os destrutores não tem argumentos, mas possuem valor de retorno que é igual a void.
Os destrutores são muito úteis para “limpar a casa” quando um objeto deixa de ser usado. Um exemplo bastante comum do uso de destrutores é o de um objeto que lida com arquivos que devem ser fechados quando o objeto for destruído. Existem outros casos onde um objeto deve comunicar aos outros objetos que será inutilizado, destruído, ou seja : sairá do programa.
Em Java, que possui coleta automática de lixo, um objeto passa a não existir mais no programa quando nenhuma variável faz referência a ele. Nesse ponto, ele é armazenado no coletor automático de lixo, onde receberá o tratamento adequado. Um nó de uma lista ligada pode ser apagado simplesmente fazendo o nó anterior apontar para o posterior a ele. Os programadores não acostumados com esse conceito precisam ouvir a seguinte frase: “Você não é obrigado a liberar explicitamente a memória de um objeto como é feito em C++ e outras linguagens”.
Se estivéssemos por exemplo em C++, que não possui coleta automática de lixo, o destrutor seria chamado sempre que a memória de um objeto fosse desalocada, o que é feito pelo programador através de uma chamada a delete nomedoobjeto(); .
Em Java a liberação de memória que é feita pelo coletor automático de lixo que é executado de modo assíncrono com o restante do programa, ou seja você não pode contar com o fato de que o destrutor será chamado imediatamente após o momento em que seu objeto sai de escopo, a não ser que o programa seja executado com o modo assíncrono do coletor automático de lixo desligado (java -noasyncgc NomePrograma). Na versão beta, você não pode nem mesmo contar com a chamada do destrutor pelo garbage collector, de modo que ele deve ser usado apenas para otimizações do código.
pelo que eu vi, posso utilizar o destructor e/ou garbage colletor e o dispose()
Qual seria o mais recomendavél pela situação
[quote=farribeiro]
Penso desta forma, que meu usuário ficará com sistema aberto o dia inteiro, e será melhor para não manter o “out of memory” … [/quote]