Pode destruir uma classe?

3 respostas
L

pode destruir uma classe?
Valeu

3 Respostas

M

não entendi… :roll: , tu diz fazer um objeto do tipo dessa classe ser coletado pelo gc? oq? deletar o arquivo da classe? hehehe

J

Acho que vc quis dizer um Objeto…
É só vc passar null para a referência, e ai deixa o GC cuidar do resto… eheheheheheheheh… isso é uma maravilha…

H

Para criar um objeto ou acessar um membro estático de uma classe, a JVM carrega o objeto Class da classe para a memória. Geralmente do HD, mas pode ser de qualquer fonte (rede, CD, banco de dados,…). Para isso, a JVM lança mão de um ‘classloader’ padrão. Tudo foi projetado para ser uma operação única e portanto unidirecional. O garbage collector só atua sobre os objetos da classe e não sobre a ‘cabeça’ da classe, ou seja, o seu objeto Class, que permanece imaculado. Isto porque há um overhead danado (verificação de bytecode, etc.) no carregamento de uma classe. Um raro caso em que esta operação pode ser repetida, é nos servlet containers, que podem, dependendo da configuração, verificar se uma nova versão de uma classe deve ser carregada para subtituir uma antiga. Para isso, o container carrega as classes de um servlet context usando uma classe derivada de ClassLoader. Agora, fazer o ‘unload’ de um objeto Class, seria algo mais raro ainda.

Viajando muito alto, hehehe, eu imaginaria um jogo muito pesado onde classes seriam criadas dinamicamente, de forma que isto acabaria acarretando um consumo exagerado de RAM, que deveria ser recuperada.

Criado 11 de julho de 2004
Ultima resposta 12 de jul. de 2004
Respostas 3
Participantes 4