Heim  >  Artikel  >  Java  >  Detaillierte Erläuterung des Klassenlademechanismus classLoader in der JAVA-Entwicklung

Detaillierte Erläuterung des Klassenlademechanismus classLoader in der JAVA-Entwicklung

无忌哥哥
无忌哥哥Original
2018-07-18 11:25:151842Durchsuche

JVM verfügt über drei Klassenlader, einen benutzerdefinierten Lader, von oben nach unten:

Bootstrap ClassLoader Dieser Klassenlader lädt die JDK-Kernklassenbibliothek, wenn die Java Virtual Machine startet. In den Speicher laden

Erweiterung classLoader Erweiterungsklassenlader, eine Klassenbibliothek, die einige JRE-JARs lädt

System classLoader Systemklassenlader, der den Klassenpfad lädt Geben Sie die Klassenbibliothek in den Speicher ein

Benutzerdefinierter Klassenlader. Der Klassenlader liegt in der Verantwortung des Programmierers selbst. Während der Ausführung des Programms werden Klassendateien dynamisch über die Unterklasse von java.lang.classLoader geladen.

Lademechanismus:

Der Java-Klassenlademechanismus wird als übergeordneter Delegationsmechanismus bezeichnet: Wenn eine Anfrage an den Loader für eine Klasse gestellt wird, fragt dieser zunächst von unten nach oben ab, ob die Klasse in den Speicher geladen wurde Wird geladen, wird die Klasse direkt zurückgegeben. Wenn der aktuelle Lader noch über eine übergeordnete Klasse verfügt, delegieren Sie ihn erst dann an die nächsthöhere Ebene, wenn die übergeordnete Klasse vorhanden ist Die Klasse kann nicht geladen werden. Sie kehrt zur nächsten Ebene zurück, bis sie geladen wird. Wenn sie nicht geladen werden kann, wird eine Ausnahme „Klasse nicht gefunden“ (ClassNotFoundException) zurückgegeben. Beispiel: Wenn der benutzerdefinierte Loader zum Laden der Klasse java.lang.String erforderlich ist, wird zum Laden tatsächlich der Bootstrap-ClassLoader verwendet. Da java.lang.String die Kernbibliotheksklasse von JDK ist, wenn die Klasse benutzerdefiniert ist Wenn der Loader verwendet wird, wird er zuerst an den Loader der übergeordneten Klasse geladen.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Klassenlademechanismus classLoader in der JAVA-Entwicklung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn