Hey Leute,
ich beschätige mich gerade mit den Klassenladern in Java.
Habe gelesen, dass seit Java 2 (ist das noch aktuell?!) es drei Klassenlader gibt, die in Form eines Delegationsmodells eine Hierachie bilden:
1. Bootstrap Klassenlader
2. Extension Klassenlader
3. System (Applikations) Klassenlader
Ich habe weiterhin gelesen, dass eine Klasse, die zu laden ist, in der Hierachie immer ganz nach oben durchgereicht wird. Also kommt es dann irgendwann beim Bootstrap Klassenlader an. Dieser arbeitet mit der Methode loadClass(...).
Nun meine Frage, weiterhin steht im Skript dass der System Klassenlader bspw. die Klassen aus dem Classpath aufruft. Was muss denn passieren, dass der Bootstrap Klassenlader "versagt" und das Laden der Klassen "nach unten" in der Hierachie weitergibt?
Also wann tritt der Fall ein, dass bpsw. der System Klassenlader eine Klasse lädt. Da ja erstmal mit dem obersten Klassenlader in der Hierachie dies versucht wird (also der Bootstrap Klassenlader) muss dieser ja in gewisser Weise fehlschlagen, damit dann irgendwann der System Klassenlader zum tragen kommt.
Wie läuft das genau ab?
Vielen Dank!!
ich beschätige mich gerade mit den Klassenladern in Java.
Habe gelesen, dass seit Java 2 (ist das noch aktuell?!) es drei Klassenlader gibt, die in Form eines Delegationsmodells eine Hierachie bilden:
1. Bootstrap Klassenlader
2. Extension Klassenlader
3. System (Applikations) Klassenlader
Ich habe weiterhin gelesen, dass eine Klasse, die zu laden ist, in der Hierachie immer ganz nach oben durchgereicht wird. Also kommt es dann irgendwann beim Bootstrap Klassenlader an. Dieser arbeitet mit der Methode loadClass(...).
Nun meine Frage, weiterhin steht im Skript dass der System Klassenlader bspw. die Klassen aus dem Classpath aufruft. Was muss denn passieren, dass der Bootstrap Klassenlader "versagt" und das Laden der Klassen "nach unten" in der Hierachie weitergibt?
Also wann tritt der Fall ein, dass bpsw. der System Klassenlader eine Klasse lädt. Da ja erstmal mit dem obersten Klassenlader in der Hierachie dies versucht wird (also der Bootstrap Klassenlader) muss dieser ja in gewisser Weise fehlschlagen, damit dann irgendwann der System Klassenlader zum tragen kommt.
Wie läuft das genau ab?
Vielen Dank!!