O ClassLoader eh o responsavel por carregar as classes para dentro da
JVM. Existem diversos ClassLoaders que sao utilizados em momentos
diferentes (para carregar arquivos .jar, classes individuais, do disco
local ou da rede, por exemplo). Alem disso, voce pode definir o seu proprio
ClassLoader se voce tiver um requerimento especifico (por exemplo, carregar
classes critografadas, ou de um banco de dados, por exemplo).  

No geral, utilizando os ClassLoaders padroes, a sua classe so sera
carregada no momento que for necessaria (ou seja, ao ser referenciada por
alguem). Voce pode utilizar essa caracteristica para (por exemplo) so
carregar uma determinada classe via rede qdo ela for necessaria.

Por outro lado, ao utilizar um arquivo .jar para empacotar suas classes, o
arquivo inteiro eh carregado da rede de uma vez so (o que eh mais rapido),
mas as classes individuais so sao carregadas para a memoria qdo
necessarias. Um arquivo .jar no disco nao precisa ser carregado da rede, e
as classes serao extraidas individualmente (por isso o .jar comprime menos
que um .zip apesar de usar o mesmo algoritmo, para facilitar o "unzip"
individual dos arquivos, mas isso eh uma outra historia).

Ou seja, as classes sao carregadas no momento que sao necessarias. Uma
forma de "pre-carregar" uma classe que nao sera necessaria eh voce fazer um
        
        Class.forName("nome.da.Classe");

E isso garantira que a classe ja tera sido carregada qdo voce precisar dela
(util para pre-carregar uma classe da rede por exemplo. Voce poderia
colocar um thread de baixa prioridade fazendo isso, enquanto sua aplicacao
esta rodando).

[]s,

Bruno.

[EMAIL PROTECTED] wrote:

> 
> Alguém sabe em que ponto da execução de um programa uma classe é
> carregada pela JVM? Todas as classes são carregadas num mesmo momento,
> ou somente quando há necessidade de uso da mesma dentro do programa?
> 
>  


Bruno.
______________________________________________________________________
Bruno Peres Ferreira de Souza                         Brazil's JavaMan
http://www.javaman.com.br            mailto:[EMAIL PROTECTED]
        if I fail, if I succeed, at least I live as I believe



------------------------------ LISTA SOUJAVA ---------------------------- 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-------------------------------------------------------------------------

Responder a