1. LoadClass, Wenn eine Klassenladeanforderung eingeht, suchen Sie zuerst das Klassenobjekt aus dem Cache.
Wenn eine direkte Rückgabe erfolgt, andernfalls wird sie vom übergeordneten Lader dieser Ladeart geladen. Wenn kein übergeordnetes Element zum Laden vorhanden ist, wird es vom Bootloader der obersten Ebene geladen. Wenn es immer noch nicht gefunden wird, verwenden Sie findClass(), um es zu laden.
2. Klassenbytecode nach Name oder Ort laden. Verwenden Sie dann defineClass, das normalerweise von Unterklassen implementiert wird. Wenn Sie den ClassLoader anpassen müssen, müssen Sie diese Methode überschreiben.
3. Die Methode defineClass
defineClass() analysiert den Bytestream in ein Klassenobjekt, das von der JVM erkannt werden kann (bereits). implementiert in ClassLoader (Ohne die Logik dieser Methode) kann diese Methode nicht nur Klassenobjekte über Klassendateien instanziieren, sondern auch Klassenobjekte über andere Methoden instanziieren, z. B. indem sie einen Bytecodetyp über das Netzwerk empfängt und ihn dann in umwandelt Ein Byte-Byte-Stream zum Erstellen des entsprechenden Klassenobjekts, und die Methode defineClass() wird normalerweise zusammen mit der Methode findClass() verwendet. Normalerweise überschreiben Sie beim Anpassen eines Klassenladers direkt die Methode findClass() des Klassenladers und schreiben die Laderegeln, konvertieren Sie dann den Bytecode der zu ladenden Klasse und rufen Sie dann die Methode defineClass() auf, um das Klassenobjekt der Klasse zu generieren.
4. discoverClass
Es kann auch gleichzeitig nach der Erstellung mit dem Class-Objekt aufgelöst werden.Wir haben zuvor gesagt, dass die Verbindungsphase hauptsächlich den Bytecode überprüft, Speicher zuweist, Klassenvariablen festlegt und Symbolreferenzen in der Bytecode-Datei in direkte Referenzen umwandelt.
Was sind die grundlegenden Datentypen von Java? 2. Gleitkommatyp, ein Datentyp, der zur Darstellung von Dezimalzahlen verwendet wird. 3. Das Schlüsselwort des Zeichentyps ist „char“. 4. Der boolesche Typ ist der grundlegende Datentyp, der logische Werte darstellt.Das obige ist der detaillierte Inhalt vonWelche Methoden gibt es zur Verwendung des Java-Klassenladers?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!