Heim >Java >javaLernprogramm >Detaillierte Erläuterung von Beispielen für den Klassenlademechanismus in Java

Detaillierte Erläuterung von Beispielen für den Klassenlademechanismus in Java

黄舟
黄舟Original
2017-09-16 10:51:051496Durchsuche

In Java werden Klassendateien über die JVM geladen. Die Klassenlademethoden sind in implizites Laden und explizites Laden unterteilt. Wenn unter anderem beim impliziten Laden ein Objekt durch new erstellt wird, wird die entsprechende Klassendatei implizit über den Klassenlader in die JVM geladen. Beim expliziten Laden werden die erforderlichen Klassendateien über class.forName() explizit in die JVM geladen.

In der Java-Sprache werden Klassen dynamisch geladen, anstatt alle Klassendateien auf einmal in die JVM zu laden. Die Basisklassen werden zuerst in die JVM geladen und andere Benutzerklassen werden bei Bedarf in die JVM geladen. In JVM geladen.

In der Java-Sprache können Klassen in drei Kategorien unterteilt werden: Systemklassen, Erweiterungsklassen und benutzerdefinierte Klassen. Für diese drei Dateitypen werden verschiedene Klassenlader bereitgestellt.

Bootstrap Loader – Verantwortliches Laden Systemklassen

ExtClass Loader – Verantwortlich für das Laden von Erweiterungsklassen

AppClassLoader – Verantwortlich für das Laden von Anwendungsklassen

Der Klassenladevorgang umfasst hauptsächlich die folgenden Schritte (Einzelheiten finden Sie unter „Ausführliche Informationen zu Java Virtual Machine“)

1. Laden: Suchen Sie die entsprechende Klassendatei entsprechend dem Suchpfad und importieren Sie sie.

2. Link: Der Link kann in 3 Schritte unterteilt werden

(1) Prüfung: Überprüfen Sie die Korrektheit der zu ladenden Klassendatei

(2) Vorbereitung: Platzieren Sie die Klasse in „Speicherplatz für statische Variablen zuweisen“

(3) Parsen: Symbolreferenzen in direkte Referenzen analysieren

3. Initialisierung: Initialisierungsarbeiten an statischen Variablen und statischen Codeblöcken durchführen.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung von Beispielen für den Klassenlademechanismus in Java. 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