Default Class Loader will load .class file only once, even though you are using that multiple times in your program. After loading.class file, if it is modified outside then default class loader wont load updated version of class file(.class file is already available in method area). You can resolve this problem, by defining your own customized Class Loader.
Main advantage of customized class loader is you can control, class loading mechanism based on your requirement.
java.lang.ClassLoader
para definir un cargador de clases personalizado. Cada cargador de clases en JAVA debe ser una clase hija de la clase java.lang.ClassLoader, ya sea directamente o indirectamente. Por lo tanto, esta clase actúa como clase base para todos los cargadores de clase personalizados.
Nota: Al diseñar/desarrollar servidores web y servidores de aplicaciones, generalmente los cargadores de clases personalizados se utilizan para personalizar el mecanismo de carga de clases.
Por ejemplo:
public class CustClassLoader extends ClassLoader{
public Class loadClass(String cname) throws ClassNotFoundException{
//check for updates and laod updated .class
//file and returns corresponding Class
}
}
class Client{
public static void main(String [] args){
Dog d1 = new Dog();
CustClassLoader c1 = new CustClassLoader();
c1.loadClass("Dog");
//
//
//
c1.loadClass("Dog");
//
//
}
}
estudiar Tal vez los cargadores de clases en general y hacer preguntas específicas. Preguntar "Por favor, explique todo lo que sabe acerca de los cargadores de clase" es en mi humilde opinión un poco demasiado pedir. – Arne
+1 Arne. ClassLoaders/class-loading es un gran tema. ClassLoader es en sí mismo una clase, y ClassLoaders se puede organizar jerárquicamente con diferentes políticas; self-first, parent-first y Thread Context ClassLoaders: un tema desconcertantemente grande pero afortunadamente bien documentado por numerosas fuentes, consigue Google y prepárate para leer mucho. – earcam