Java · Intermediário · Inglês · Técnico
classloader
Componente da JVM que localiza e carrega classes na memória sob demanda, a partir de JARs, diretórios ou da rede. Cada classe pertence ao loader que a definiu.
Onde usar
Aparece em ClassNotFoundException, hot reload e servidores de aplicação. Duas cópias da mesma classe em loaders diferentes não são o mesmo tipo.
Em código
var cl = String.class.getClassLoader();
System.out.println(cl); // null: bootstrap
var app = ClassLoader.getSystemClassLoader();
System.out.println(app.getParent());Exemplos
Each plugin gets its own classloader.
Cada plugin recebe seu próprio classloader.
The same class from two classloaders is treated as two different types.
A mesma classe vinda de dois classloaders é tratada como dois tipos diferentes.
Cuidado
A mesma classe em dois classloaders gera uma ClassCastException estranha: 'X cannot be cast to X'.
Sinônimos
carregador de classes