O que é o ClassLoader

1 resposta
L

Pessoal,
Uma dúvida conceitual:
O carregador de Classes( Class Loader ) e o Verificador de Bytes ( ByteCode Verifier ) estão localizados onde ?

Em alguma dll, dentro dos pacotes do JRE (Naqueles JARs) ou são instruções do interpetrador java.exe ?

É que não sei se entendi bem, mas me parece que o JAVA.exe chama uma API que contém uma Classe chamada “ClassLoader” e implementa métodos que validam um determinado arquivo .class. É isso mesmo ou não tem nada ver o que eu escrevi ?

Atenciosamente,
Leandro

1 Resposta

N

Ae Leandro,

Vou tentar dar uma explicaçãozinha.

Vamos supor que vc tem uma classe chamada MarceloQuinho.java, que tem o método main. Certo, vamos começar:

Quando vc compila a classe, vai fazer um MarceloQuinho.class (é naaaaaaada) que tem tudo que o .java tem, sendo que agora em escrito em linguagem de máquina da JVM. Quando essa classe vai ser acessada ocorre o seguinte:

O ClassLoader é chamado, carregando a classe MarceloQuinho para a mémoria, juntamente com todos os campos e superclasses da classe. Geralmente, ele é escrito em C.

Depois é chamado o Verificador de Bytecodes, que verifica se a classe não foi violada depois de compilada. Verifica se as variaveis são incializadas direitinho, as chamadas de métodos, …

Depois vem o SecurityManager, que verifica determinadas operações: se a Thread pode cirar um novo ClassLoader, subprocesso, VM, …

Dicas:
E vc pode fazer o seu ClassLoader :smiley:
Vc pode mandar rodar a classe sem verificar os bytecodes. :roll:
Por default, nenhum securitymanager vem, ae vc pode definir o seu próprio. :smiley:

Da uma olhada ainda aqui: http://www.securingjava.com/

[]'s

Criado 13 de abril de 2004
Ultima resposta 13 de abr. de 2004
Respostas 1
Participantes 2