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
, aby zdefiniować własny dostosowany program ładujący klasy. Każdy program ładujący klasy w JAVA powinien być klasą potomną klasy java.lang.ClassLoader, bezpośrednio pośrednio. Dlatego ta klasa działa jako klasa bazowa dla wszystkich dostosowanych ładowarek klas.
Uwaga: Przy projektowaniu/rozwój serwerów WWW i serwer aplikacji, zwykle dostosowane ładowarki klasy służą do niestandardowego mechanizmu klasa obciążenia.
Na przykład:
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");
//
//
}
}
Może uczyć ładowarki klasy w ogóle i zadać konkretne pytania. Pytanie "Proszę wyjaśnić wszystko, co wiesz o ładowarkach klasowych" to IMHO, o które można prosić. – Arne
+1 Arne. ClassLoaders/ładowanie klasy to ogromny temat. ClassLoader sam w sobie jest klasą, a ClassLoaders mogą być ułożone hierarchicznie z różnymi zasadami; self-first, parent-first i There's Context ClassLoaders - oszałamiająco duży temat, ale na szczęście dobrze udokumentowany przez liczne źródła, uzyskać Googling i przygotować się do czytania dużo. – earcam