O Class.forName() carrega a classe, e essa classe é carregada para a memoria ? Como funciona isso ?
“be initialized” o que vem ser esta inicialização ?
A JVM precisa conhecer as classes que estão sendo usadas por ela. Quando você roda o seu programa, as classes que você incluiu em seu classpath, mais uma série de classes do java, são carregadas na memória e ficam prontas para o uso. Com a classe pronta, você poderá criar objetos, ou usar os métodos e atributos estáticos da classe. O responsável por fazer essa carga é um cara chamado ClassLoader.
Existe um objeto para cada classe, que descreve quais são os métodos que a classe tem, atributos, construtores, etc. Quando você chama Class.forName, você pede ao java para te dar uma instância desse objeto. Com uma instância do objeto da classe na mão é possível, entre outras coisas, criar objetos da classe.
Essa é uma das formas de se implementar a funcionalidade de plugins. Você coloca o nome da classe do plugin em um arquivo extendo (um xml ou um .ini), lê esse nome durante a execução, e cria um objeto da classe do plugin. Tudo isso sem que a aplicação original precise sequer conhecer o nome da classe que o desenvolvedor do plugin usou!
Para mais informações sobre esses recursos, procure se informar sobre Reflexão e sobre os ClassLoaders.
É, o seu foi a grossíssimo modo!
hahahahahahahah…
Quando eu faço
Class.forName( “com.mysql.jdbc.Driver” );
O que acontece ?
Normalmente nos falamos que vamos carregar o Driver na memoria, mas nao pegamos o retorno do metodo Class.forName();
Valeu !
Cara, da uma olhada aqui ao menos.
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html#forName(java.lang.String)
[]'s
A grosso modo… vc passa uma String (o nome totalmente qualificado da classe) e obtém um objeto Class.
é isso.
[quote=ViniGodoy]A grosso modo.
A JVM precisa conhecer as classes que estão sendo usadas por ela. Quando você roda o seu programa, as classes que você incluiu em seu classpath, mais uma série de classes do java, são carregadas na memória e ficam prontas para o uso. Com a classe pronta, você poderá criar objetos, ou usar os métodos e atributos estáticos da classe. O responsável por fazer essa carga é um cara chamado ClassLoader.
Existe um objeto para cada classe, que descreve quais são os métodos que a classe tem, atributos, construtores, etc. Quando você chama Class.forName, você pede ao java para te dar uma instância desse objeto. Com uma instância do objeto da classe na mão é possível, entre outras coisas, criar objetos da classe.
Essa é uma das formas de se implementar a funcionalidade de plugins. Você coloca o nome da classe do plugin em um arquivo extendo (um xml ou um .ini), lê esse nome durante a execução, e cria um objeto da classe do plugin. Tudo isso sem que a aplicação original precise sequer conhecer o nome da classe que o desenvolvedor do plugin usou!
Para mais informações sobre esses recursos, procure se informar sobre Reflexão e sobre os ClassLoaders.[/quote]
ahIUAHuiahUIAHuiahA
Não concordo, a grosso modo fui eu!!! :roll: