Documente Academic
Documente Profesional
Documente Cultură
ClassLoader uma classe que carrega outras classes ou de forma mais cient ca, a que
se encontra no pacote java.lang.ClassLoader, carregando os bytecodes da sua classe para
a memria. Assim, ela poder ser utilizada por toda sua aplicao. Esse mecanismo de
carregamento de classes nos permite ter vrias delas com o mesmo nome (exatamente
iguais), mas em ClassLoaders diferentes. isso que acontece, por exemplo, em
containers web atuais, onde temos vrias aplicaes distintas, mas pode ocorrer de uma
ou duas classes terem o mesmo nome, sem causar con ito algum.
Tudo em Java carregado atravs de ClassLoaders espec cos (que sero explicados mais
a frente). Ento voc pode se perguntar: se tudo carregado por um ClassLoader e o
prprio uma classe que tambm deve ser carregada, ento quem carrega o primeiro
ClassLoader que carregar as demais classes? Pensando nesse problema foi criado o
Bootstrap ClassLoader, escrito em linguagem nativa e que carregado antes de
qualquer outro na JVM, cando responsvel por inicializar pacotes essenciais para o
funcionamento da linguagem, como o pacote rt.jar.
https://getpocket.com/a/read/439498285 1/5
9/28/2017 Pocket: Entendendo ClassLoaders em Java
O ClassLoader, por padro, carrega todas as classes que esto presentes no seu
CLASSPATH. Ento no precisamos nem saber da existncia desse mecanismo de
loading. Classes so identi cadas atravs do seu fully quali ed name + class loader que a
carregou, assim temos a certeza que a Classe Funcionario da Aplicao 001 diferente da
Classe Funcionario da Aplicao 002.
https://getpocket.com/a/read/439498285 2/5
9/28/2017 Pocket: Entendendo ClassLoaders em Java
Mecanismos de ClassLoader
Temos trs tipos de ClassLoaders nativos: Bootstrap ClassLoader, Extension ClassLoader
e Application ClassLoader. Cada um desses tem sua respectiva funo:
https://getpocket.com/a/read/439498285 3/5
9/28/2017 Pocket: Entendendo ClassLoaders em Java
Podemos dar um exemplo mais completo carregando uma classe dinamicamente atravs
do loadClass, como mostra o exemplo da Listagem 1.
Vamos agora criar nosso prprio ClassLoader, que tem como principal mtodo o
loadClass, que responsvel por carregar a classe que desejamos, como mostra a
Listagem 2.
Quando queremos carregar a classe, essa deve estar dentro do pacote re ection e
utilizamos o nome MyObject numa URL prpria para isso. Caso contrrio, passaremos a
responsabilidade para o ClassLoader parent.
https://getpocket.com/a/read/439498285 4/5
9/28/2017 Pocket: Entendendo ClassLoaders em Java
https://getpocket.com/a/read/439498285 5/5